En C++ se usa la funcion SetTimer y funciona con milesimas de segundo, esta funcion admite como argumento el nombre de una funcion para cada "tick" del temporizador o un valor NULL, cuando se usa esta ultima opcion envia un mensaje WM_TIMER por cada tick que debe ser procesado por
la funcion de ventana. Cuando se quiera eliminar el temporizador se usa
la funcion KillTimer. Mira la documentacion de Win32 sobre ambas funciones. Es lo mejor. Otro método mas cutre es usar la funcion GetTickCount, que devuelve el numero de milisegundos transcurridos
desde el inicio de la sesion de Windows, pero habria que usarlo dentro
de un bucle comparando el valor actual con el anterior y acaparando
todo el tiempo de proceso del programa. Por cierto, este ultimo método
si lo puedes usar sin problemas desde Visual Basic