Tja, zum eigentlichen Problem (Callback als Methode) gibt es hier einen schönen Artikel:
http://bdn.borland.com/article/0,1410,22225,00.html
Laut Implementierung in Forms.pas könnte man das auch an deinen Fall anpassen. Fehlt mir aber aktuell die Zeit für solche Späßchen.
Die relevanten Funktionen aus Forms.pas sind:
function MakeObjectInstance(Method: TWndMethod): Pointer;
procedure FreeObjectInstance(ObjectInstance: Pointer);
Problem sind Kleinigkeiten in der Implementierung und der Typ "TWndMethod" ... die angepaßt werden müssten. TWndMethod hat nämlich 4 Parameter + Rückgabe ... eine HookProc nur 3 + Rückgabe.