In pascal you don't need to use pointers everywhere. This means that you can acces object properties/record values simply by:
Code:
rect.x := 100;
So your code would look something like this:
Code:
program sdltest;

uses
    sdl2, SDL2_image;
const
     SCREEN_WIDTH: integer = 640;
     SCREEN_HEIGHT: integer = 480;
     quit: boolean = false;
var
   win: pSDL_WINDOW;
   ren: pSDL_RENDERER;
   background, sprite: pSDL_TEXTURE;
   e: pSDL_EVENT;
   ret: pSDL_RECT;
   rect: pSDL_RECT;
   thisTime, lastTime: integer;
   dt: single;

begin
     win := SDL_CreateWindow('Hello World', 100, 100, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
     ren := SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED or SDL_RENDERER_PRESENTVSYNC);
     background := IMG_LoadTexture(ren, 'background.png');
     sprite := IMG_LoadTexture(ren, 'sprite.png');
     new(ret);
     ret.x := 0;
     ret.y := 0;
     ret.w := 64;
     ret.h := 64;
     new(rect);
     rect.x := 100;
     rect.y := 100;
     rect.w := 64;
     rect.h := 64;
     new(e);

     while quit = false do
     begin
          thisTime := SDL_GetTicks;
          dt := (thisTime - lastTime) / 1000;
          lastTime := thisTime;
                   while SDL_POLLEVENT(e) <> 0 do
                   begin
                        if e.type_ = SDL_MOUSEBUTTONDOWN then
                           quit := TRUE;
                        if e.type_ = SDL_KEYDOWN then
                           begin
                            case e.type_ of
                                 SDLK_LEFT: rect.x := rect.x - 10;
                                 SDLK_RIGHT: rect.x := rect.x + 10;
                                 SDLK_UP: rect.y := rect.y - 10;
                                 SDLK_DOWN: rect.y := rect.y + 10;
                             end;
                           end;
                   SDL_RenderClear(ren);
                   SDL_RenderCopy(ren, background, nil, nil);
                   SDL_RenderCopy(ren, sprite, ret, rect);
                   SDL_RenderPresent(ren);
                   end;

 end;
     SDL_DestroyTexture(background);
     SDL_DestroyTexture(sprite);
     SDL_DestroyRenderer(ren);
     SDL_DestroyWindow(win);

     IMG_QUIT;
     SDL_QUIT;
end.
Not I haven't tested this out as I myself am not using SDL.

Now for learning about using SDL with pascal I recomend you visit page below. It contains sveral tutorials about using SDL with Free Pascal but they should work with other Pascal dialects also.
http://www.freepascal-meets-sdl.net/