Additional info

If I add a sleep() long enough (something like 9000) after the sprites craetion and the main draw routine I don't get the slowdown.

Example:

procedure TForm1.DXTimerTimer(Sender: TObject; LagCount: Integer);
begin
if (not DXDraw.CanDraw) then exit;
DXInput.Update;
if titlescreen then scenetitle else
if not(pause) then maindraw;
DXDraw.Flip;
end;

and in the scenetitle procedure when the space key is pressed:
CreateSprites; //Procedure that creates the sprites
Sleep(9000);
pause:=false;
titlecreen:=false;

I really don't get it. It must be a stupid thing.