Jeśli nie ma potrzeby asynchronicznego "zawiadamiania" innej części programu o upływającym czasie, to użyj zwykłych timer'ów (sprawdzaj czas, który upłynął od danego punktu w czasie). Oczywiście możesz użyć też wątków i nadać programowi nieco "zdarzeniowego" charakteru.
Dla obydwu rozwiązań zapoznaj się odpowiednio z tym (chrono) lub tym (thread). Oczywiście, jeśli mowa o C++.
Zawsze możesz też tworzyć osobny proces i korzystać ze wspólnych danych (np. przy pomocy forka na linuxie), ale to już byłoby strzelaniem z armaty do wróbla.