NSTimers не точны. Указанный вами интервал времени - просто цель. NSTimer будет пытаться достичь этой цели, но чем больше вещей вы запустите в этом потоке, тем медленнее будет время цикла. Ваш таймер 0,001, вероятно, идет слишком быстро, чтобы быть полезным, и будет страдать от проблем с точностью. Если вам нужна точность в реальном времени, вам придется отслеживать, в какое время таймер фактически срабатывает с NSDate, и соответственно компенсировать.