Der Windows-Forms-Timer ist leider nicht schnell genug, um Takte im Millisekunden-Bereich zu erzeugen. Bei Windows XP liegt der minimal mögliche Takt bei ca. 15 ms. Das ist für die Ansteuerung von Schrittmotoren zu langsam.
Benötigt werden Taktimpulse im Bereich von ca. 1 ms.
Die Lösung des Problems heißt Multimedia Timer:
http://stackoverflow.com/questions/7712309/c-sharp-loop-while-mousedown-button-pressed
http://www.codeproject.com/Articles/5501/The-Multimedia-Timer-for-the-NET-Framework
http://stackoverflow.com/questions/12888269/multimedia-timer-interrupts-in-c-sharp-first-two-interrupts-are-bad
.