PAX
BlitzMax в винде использует timeGetTime, но точность ограничивается 1 миллисекундой
тут есть старая но подробная статья
http://www.geisswerks.com/ryan/FAQS/timing.html
они тоже остановились на QueryPerformanceCounter, но следует понимать что возращаемое значение привязано к частоте процессора и потому надо частоту тоже снимать раз в 2-4 секунды (сейчас процессоры любят её частенько менять)
скорее всего лучше всего будет использовать комбинированный метод, если QueryPerformanceCounter поплывёт то стабилизировать его с помощью timeGetTime