Оконные сообщения в FMX можно обрабатывать так же как и в VCL.
Достаточно в вашу WindowProc добавить это:
var Message: TMessage;
Message.Msg := uMsg;
Message.WParam := wParam;
Message.LParam := lParam;
Message.Result := 0;
frm.Dispatch(Message);
Тогда потом можно будет смело написать что-то вроде
procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;
И оно будет работать.