Mira esto:
Código:
var
UsuarioDiceNo : Boolean;
procedure MiBucle;
begin
UsuarioDiceNo := FALSE;
repeat
...
...
Application.ProcessMessages; // para que mire si se ha clickeado
until Condicion OR UsuarioDiceNo;
end;
// en el OnClick de un boton cualquiera
procedure TForm1.Button1Click (Sender : TObject);
begin
UsuarioDiceNo := TRUE;
end;