Dovresti usare un delay di qualche millisecondo (1 , 5 o 10 da aggiustare praticamente ...) aggiornando una varaibile contatore in modo che i secondi siano aggiornati allo scadere di un certo conteggio.

Ovvero, se imposti un ritardo di 1 millisecondo, aumenta la tua variabile (preazzerata) e quando arriva a 1000 aumenti il valore dei secondi e la azzeri nuovamente.

Così i secondi andranno al ritmo corretto ma il tuo programma avrà a disposizione molto più tempo ...