Bueno, supongo que hablas de MS-DOS...
Para dejar un programa residente, tienes que "finalizarlo" llamando a la interrupción 27h de MS-DOS, en lugar de de a la 4C DE LA iNT 21H.
Con eso consigues que el programa devuelva el control, (volverás al prompt), pero en realidad se ha quedado en memoria.
Luego necesitarás que el programa de vez en cuando haga algo. Para eso el programa tendrá que haberse colgado primero de alguna interripción, que salte de vez en cuando y de a tu programa la oportunidad de ejecutar su código.
En tu caso, tendrás que colgarlo de la interrupción 08h (la del reloj) que salta 18.2 veces por segundo. En el código que metas ahí puedes ir contando el número de veces que te llamen, o mirar la hora del sistema o algo parecido, para saber cuando te toca trabajar, y cuando simplemente tienes que dejar pasar la interrupción a su manejador original.
Puedes obtener información de esto, y de algunos trucos para que tu programa ocupe poco en memoria en el libro de Ciriaco García de Celis, Universo Digital del IBM PC o algo así, que está disponible por la red.
Suerte.