Отдельная форма не нужна.
Достаточно просто отреагировать на это сообщение.
Хотя вообще-то для того, что бы программа не закрывалась приходится делать дополнительные телодвижения, а не наоборот.
Код:
type
TForm1 = class(TForm)
protected
procedure WMQueryEndSession(var Message : TMessage); message WM_QUERYENDSESSION;
end;
...
procedure TForm1.WMQueryEndSession(var Message : TMessage);
begin
Close;
end;