В одной статье на js.ru (
http://javascript.ru/blog/Andrej-Par...cii-JavaScript) уже была похожая тема. Там функция таймера не так нагружена, но тем не менее анимация «шумит» при большой скорости объекта.
Если уменьшить сдвиг да 1px, то все анимируется плавно, но скорость движения при таком раскладе максимум 100px/сек, т.к. таймеры в браузерах интервал меньше 10ms не поддерживают