En las versiones de Windows basadas en la familia NT (Windows NT y Windows XP en adelante) necesitas privilegios de Administrador para cambiar la fecha. Esto se puede cambiar en la configuración de grupo pero es arduo si son varias máquinas las que hay que configurar.
Sinceramente no te recomendaría que cambies la fecha de un equipo. Es mejor que utilices un servicio de sincronización. El que trae Windows es suficiente. Si lo que quieres es obtener una fecha confiable, te recomiendo utilizar los componentes INDY para hacer una consulta en un servicio de Internet.
Código Delphi
[-]var
SNTPClient: TIdSNTP;
begin
SNTPClient := TIdSNTP.Create(nil);
try
SNTPClient.Host := 'pool.ntp.org';
internet_time := SNTPClient.GetTime;
finally
SNTPClient.Free;
end;
end;
Saludos!