That's completely wrong and absolutely right at the same time. It depends strongly on the OS used. Let's me prove it with the attached application (simple to use: you click on a button and wait 10 seconds). With ICS or JellyBean, you'll get no deviation (or very small, usually on the first tick) with the "busy loop" method, and a small but always there deviation with the timer. On an older device under Gingerbread, the timer is more regular.
EDIT: to give an idea, here are the results on a device under JellyBean (single core 1 Ghz):
After 2 minutes, the timer has accumulated a deviation of 802 ms. The "busy loop" only 10ms. Moreover, the busy loop is never ahead of the time, contrary to the timer.