You cannot make a true timer without using timer features of OS. A timer is always an OS feature. It uses hardware and a device driver to trigger some event/message at desired time using zero CPU time while waiting for a timer event. Application-level code does not get direct access to hardware and hardware interrupts, so no matter what you do, it's useless.
In Windows, there is a number of different timers you can use. For further information, please see this CodeProject article:
Timers Tutorial[
^].
—SA