Уменьшаю время. Уменьшаю. А эффекта нет. Полез в документацию.
ОКАЗЫВАЕТСЯ, что у SetTimer есть минимальное время, равное 10 мс. Если задавать меньше, всё равно событие будет генерироваться каждые 10 мс. Да, в документации про это написано. Однако поведение очень неожиданное. Например у функции Sleep, которая просто приостанавливает выполнение программы на заданное время, таких ограничений нет.
Интересно, это ограничение родилось из времён, когда компьютеры были большими? Современные компьютеры и таймер в 1 мс спокойно обработают.