If I do the exact same thing in C it goes a LOT faster..
How are you making sure that you are doing the same thing as /timer -m in your C code?
The 64 you get sounds about right. mirc uses
SetTimer for its timers and those are of limited accuracy, depending on your hardware (you can find more details on the latter
here and
here). 64 reps/sec implies a clock res of 15-16msec, which as you found is quite common (there's a little
utility that can tell you what your system clock's resolution is).
A
multimedia timer, which is what /timer -h uses, can give more accurate results but cannot increase the resolution past that of you system clock.