Hola este código lo saqué del club hace ya tiempo, me sirvió para crear un programa de mensajería interna que al hacer la comprobación de si tenías mensajes pendientes de leer te ponía el mensaje pendiente (el formulario correspondiente) encima de todos los programas que tenías abiertos en ese momento. Supongo que si utilizas el mismo código en un timer que se actualice cada poco tiempo conseguiras que el formulario que quieres se quede siempres encima de todo.
Código Delphi
[-]
var
FgThreadId : DWORD;
AppThreadId : DWORD;
Código Delphi
[-]
form3.FormStyle:=FsStayOnTop;
Form3.Showmodal;
Form3.FormStyle:=FsNormal;
FgThreadId := GetWindowThreadProcessId(GetForegroundWindow, nil);
AppThreadId := GetWindowThreadProcessId(Handle, nil);
AttachThreadInput(AppThreadId, FgThreadId, true);
SetForegroundWindow(Handle);
AttachThreadInput(AppThreadId, FgThreadId, false);
Espero que te sirva.
Saludos.