Hola,
Si has creado un nuevo "Hilo" derivándolo de la clase "TThread" (que es lo habitual, creo) tu Hilo debería contar ya con el método "Terminate", puesto que es "TThread" quien implementa dicho método. Por otro lado el procedimiento "Terminate" se reduce a esto:
Código Delphi
[-]
procedure TThread.Terminate;
begin
FTerminated := True;
end;
Es decir, que "lo único" que se lleva a cabo es dar a la variable privada "FTerminated" el valor "True". Como la propiedad "Terminated" del Hilo lee esta variable privada, pues eso, en cuanto ejecutes el procedimiento "Terminate" la propiedad "Terminated" valdrá "True",... y el bucle de ejemplo que anteriormente puso el compañero acabará, puesto que:
Código Delphi
[-]
procedure TMyThread.Execute;
begin
try
while not Terminated do
begin
end;
finally
end;
end;
Es decir, mientras la variable "Terminated" valga "False" el bucle continúa ejecuándose, empero, en cuanto esta valga "True" el bucle no se ejecutará más.
¿De dónde sacas tu Hilo? ¿Lo derivas de "TThread"? Porque, como digo, si es así, deberías contar con el método "Terminate" sin más, no tienes que implementarlo tú por tu cuenta.