В принципе, можно вообще заставить ваше окно игнорировать сообщение WM_SYSCOMMAND
Код:
procedure TForm1.WMSYSCOMMAND(var Msg: TMessage);
begin
{ I do nothing }
end;
Тогда и не будет появляться системное меню. Хотя, возможно, это чем-то чревато. Надо справочку посмотреть, как запретить конкретно выпадание системного меню, так сразу не вспомню.