ya que utilizas ADO, supongo que te conectaras a Access o SQL Server. La primera no se si te permitira crear relaciones de integridad, pero la segunda, seguro. Yo te aconsejo que, si puedes, lo hagas mediante relaciones de integridad (que trabaje el SGBD, que para algo lo tenemos!!!!

)
Pero si no puedes porque no lo permite, yo lo haria con una sentencia SQL de Update
Código:
update detalle set numerofact = nuevo num fac
where numerofact = antiguo num fac
Pero si quieres hacer en un bucle, tienes un error en la forma en que lo haces
Código:
while not datos.cuerpo.eof do
begin
datos.cuerpo.edit
datos.cuerponumerofact.value:=número nuevo;
datos.cuerpo.post;
datos.cuerpo.next;
end;
Si los TTables estan unidos mediante las propiedades MasterSource y MarterField estableciendo una relacion entre ellos, seguramente en Next sobrara y tendras que cambiar el codigo antes en los detalles que en el maestro
Espero te sirva (y ya diras que opcion has escogido

)