Ich würd die Abfrage der Zeit nicht in ein 1ms Raster legen.
Egal ob nun Timer Interrupts oder Delay's.

Probier doch die Flanken deines DCF Empfängers auszuwerten.
Wenn Du die Sensing Umschalterei im Interrupt nicht magst, kannst Du ebenso 2 Interrupt Eingänge parallel schalten ( z.B. INT0 und INT1 ) und den einen auf steigende Flanke und den anderen auf fallende Flanke programmieren.
Ein Timer läuft frei - Günstig wär ein 16 Bit Timer.
Den Prescaler so einstellen, das 2 Sekunden überbrückt werden können. Eventuell einen Overflow Counter im Timer Overflow mitlaufen lassen.
Der Vorteil ist , das die Interrupts mit 2Hz aufgerufen werden.
Bei deiner Polling Methode läuft das Ganze mit 1000Hz.
Das bedeutet, Du hast keine Probleme um dein Display anzusteuern.