Ich habe den Quelltext mal überflogen, der ist ja sehr sehr gut kommentiert, es sollte also möglich sein, den nachzuvollziehen, ich denke auch ohne besondere C++-Kenntnisse.
Der Code, der sich um die Hooks kümmert, steht in der Datei hook.cpp. Was gemacht wird, ist, einen neuen Thread zu erzeugen (dessen Quelltext findet sich in HookThreadProc ab Zeile 4263). Dieser Thread bekommt über Windows Messages mitgeteilt, was er mit den Hooks anstellen soll (setzen / löschen).
Die andere interessante Funktion ist AddRemoveHooks (Zeile 4003), die dafür sorgt, dass, wenn gerade kein Hook aktiv ist, ein neuer Thread zur Steuerung erstellt wird und diesem dann die entsprechenden Befehlt gibt.
Die Initialisierung der notwendigen Variablen geschieht in ChangeHookState (Zeile 3518), die AddRemoveHooks aufruft.
Die Callback-Funktionen, die aufgerufen werden, sind LowLevelKeybdProc (Zeile 158) und LowLevelMouseProc (Zeile 289).
Ich habe mir den Code jetzt nur ein paar Minuten angesehen, aber ich glaube, ich habe einigermaßen verstanden wie das ganze funktioniert. Eigentlich müsste das ganze genauso in Delphi umsetzbar sein, allerdings fehlt mir ebenfalls die Zeit, das einfach mal auszuprobieren.
Ich hoffe aber die Hinweise zum Quelltext stimmen und helfen

.