если точность не нужна, то однозначно старайтесь использовать Sleep, или вообще переходите на событийную модель (SetTimer, OnTimer)
Sleep передаёт управление системе, таким образом задача не захватывает CPU на 100%. Но Sleep имеет дискретность порядка 16 мсек в ХР (и кажется вообще NT), и около 55 мсек в 98/МЕ.
Функции PerfomanceCounter позволяют узнать частоту этого самого таймера (QueryPerfomanceFrequency) которая составляет (по личному опыту) 3,579МГц на AMD - машинах и тактовую ядра на Intel P-IV / Celeron а также текущее значение таймера (QueryPerfomanceCounter). Обе функции работают с 64-битными целыми, при этом (внимание!) обязательно начальную обработку проводите именно в 64-битном виде (я как-то нарвался на неприятности из-за перевода в 32-бит) Передавать управление ОС здесь не получится