ループ
Sleep
DoEvents
timeGetTime

あたりを使えばかなり正確&低負荷なのつれくない?
timeGetTimeは計算がミリ秒になるから