10msってかOSのタイマー割り込みの精度による
Sleepから復帰させるスケジューラーがこの割り込み分解能より短い時間で仕事できないから
10msだったり16msだったりまちまち

timeBeginPeriod(1);
を呼べば精度の低いSleepでは限界があるものの1msに近づけることはできる


ところでtimeBeginPeriodを呼んでる臭いアプリ(WindowsMediaPlayerとか)を同時に立ち上げとくと
いきなりぬるぬる動き出すアプリあるよねw
そのプログラム内のみの変更じゃなくて
OS自体のタイマー割り込みに対する変更だから起動してる全てのアプリに影響があるので注意