Is there some other way to do this, without that much CPU load?
Yes. Use CreateTimer() and an event-based system.
Suggestion: Create a Timer with 1 Hz (one tick per second) and then on each Timer event ($4001, I think) just add a tick and check to see if however many seconds you want to have passed are passed.
As a side effect, your program does not have to halt execution while it's counting. It can continue on doing whatever, and your CPU usage will be very small.
Also, don't be worried about precidion if you're only counting in the minutes range. Precision only matter if you're worried about a few milliseconds here and there.