Попробовал 2 пути:
1)
- Код: Выделить всё
 procedure TForm1.Button1Click(Sender: TObject);
var
  AMsgDialog: TForm;
  ACheckBox: TCheckBox;
begin
  AMsgDialog := CreateMessageDialog('test test test test test test test test test test test test test test test test test test test test test test test test test',mtError, [mbOK]) ;
  ACheckBox := TCheckBox.Create(AMsgDialog) ;
  with ACheckBox do begin
    Caption := 'Not show this message';
    AutoSize:=true;
    AnchorSide[akRight].Side := asrRight;
    AnchorSide[akRight].Control := AMsgDialog;
    AnchorSide[akBottom].Side := asrBottom;
    AnchorSide[akBottom].Control := AMsgDialog;
    Anchors := [akRight,akBottom];
    Parent := AMsgDialog;
  end;
  //AMsgDialog.Width:=max(AMsgDialog.Width,{ACheckBox.Width}500);
  AMsgDialog.ShowModal;
end; 
Хоть вроде и имеем AMsgDialog, но встроить в него ничего не получается, там все "захардкожено" увеличиваю ширину чтоб чекбокс гарантировано влазил - кнопки остаются неподвижными не по середине, а при коротком сообщении чекбокс невлазит((
Ну и выглядит странновато - иконка не системная, кнопки какието здоровые. не пойдет((
2) С горя я даже буду согласен не на чекбокс, а просто на кнопки Ok и OkToAll (вторая подавляет все сообщения данного типа), ну думаю с этим то проблем не будет
Хер там(( CreateMessageDialog дает только Yes и YesToAll, а в Application.MessageBox вообще ничего похожего нет