Para procesadores x86 en modo real (16 bits) no se si existe algo como eso...
En cambio en modo protegido o en modo largo (32 o 64 bits), dispones del PIT (Programmable Interval Timer). Puedes configurar la frecuencia en la que se va a producir una interrupción del PIT y que ejecute una función tuya, pero esto no es nada fácil y requiere hacer muchas cosas antes.
http://wiki.osdev.org/Programmable_Interval_Timer1. Entrar en modo protegido y configurar la GDT (Global Descriptor Table). En esta tabla, se separan los rangos de memoria con los niveles de privilegio, básicamente sirve para dividir la memoria en partes para poner los programas en modo kernel o en modo usuario.
http://wiki.osdev.org/Global_Descriptor_Table2. Configurar la IDT (Interruption Descriptor Table). Es una tabla en la que puedes registrar las interrupciones que deseas capturar, entre ellas están las excepciones del sistema (Page Fault, Double Fault, Tripe Fault, Division by Zero, etc..) y las interrupciones hardware, también conocidas como IRQs (FD, IDE, ATA, PIT, etc..). Esta tabla es de tamaño fijo y se carga en la memoria del procesador con la instrucción de ensamblador
LIDT.
http://wiki.osdev.org/Interrupt_Descriptor_Tablehttp://wiki.osdev.org/Interruptsy etcétera...
Programar un Kernel es una locura y tienes que tener mucho tiempo libre, saber mucho ensamblador, C e inglés.
La mejor página para buscar información es esta:
http://wiki.osdev.org/Main_PageY si te lo quieres tomar más en serio, en google puedes encontrar los manuales de Intel (3000 páginas) y AMD.
Saludos.