Lo que César Augusto propone es "enganchar" un procedimiento en la cola de interrupciones del MS-DOS, Turbo Pascal tiene una directiva para esto llamada Interrupt y dos procedimientos que ayudan a poner el procedimiento en la cola y luego restaurar la cola (cuando ya no necesites que ese procedimiento se ejecute.
Concretamente lo que necesitas hacer es esto:
uses Dos, Crt;
var
BackInt1C: Pointer;
{$F+,S-,W-}
procedure ManejadorTiempo; interrupt;
var
hh,mm,ss,cc:word;
begin
GetTime(hh,mm,ss,cc);
gotoxy(65,1);
Write(hh,':',mm,':',ss);
end;
{$F-,S+}
begin
ClrScr;
GetIntVec($1C,BackInt1C);
SetIntVec($1C,Addr(ManejadorTiempo));
writeln('Ves la hora en la esquina superior derecha?');
ReadKey;
SetIntVec($01C,BackInt1C);
end.
Vas a tener algunos problemas cuando hagas muestras en la pantalla usando GotoXY porque este procedimiento hace uso de una Int de la BIOS que modifica la posición del cursor y eso interfiere con el GotoXY que está en el manejador que muestra la hora, lo ideal es no usar el GotoXY en el procedimiento ManejadorTiempo sino que hacer una escritura directa en la memoria de video pero eso ya es más complicado y escapa al ejemplo requerido.