Hola, primero q nada, en el for tiene un error, vos pusiste a lo ultimo un "to" y tiene q ir un "do" y ahi t tiene q tirar un error de compilacion, segundo error, le pasas al procedimiento como valor a la matriz, y se la tenes q pasar por referencia para q le haga el cambio, xq por lo q veo ese procedimiento no llama a ningun otro ni tmp imprime en pantalla, por lo cual si le pasas la matriz por valor, hara los cambios, si el procedimiento andubiera, pero luego de salir del mismo no haria cambios. y tercero, vos pusiste Matriz[I,J]:=Matriz[I+1,1], y eso t tiene q dar un error d rango, porq la primer pasada i vale 4 y si le sumas uno, vale 5, pero la matriz es d 4 x 4, por lo cual haces q se vaya de rango. Aca te dejo como seria el procedimiento para mover el 16 a la primer posicion y mover todos los demas una casilla. Espero q te sirva.
Procedure Mover (Var Matriz: tMatriz);
Var i,j,AUX: Integer;
Begin
Aux:= Matriz[4,4];
For I:= 4 Downto 1 do
For J:= 4 Downto 2 do
Matriz [i,j]:= Matriz [I,J-1];
Matriz [1,1]:= Aux;
end;