Yeah, you move your camera a constant amount every game loop, and if there are two hundred loops per second, the camera will seem to move slower than if there were 100 loops per second.
If you use "sync rate 60", then the game won't update more than 60 times a second. However, if your game is running at 30 fps, this still won't help you.
The other option is timer based movement. If you have a speed, in units per second, and a speed, in Game Loops Per Second (lets call this GLPS), you take speed/GLPS, to get speed per game loops. That's timer based movement. (you could also multiply by seconds per game loop - same thing).
So, you might want to try
move camera using arrowkeys 1.0/SCREEN FPS(), 1.0/SCREEN FPS()
or you could have something like this:
lasttimer=timer()-100
do
duration#=(timer()-lastTimer)/1000.0
lastTimer=timer()
move camera using arrowkeys 1.0*duration#,1.0*duration
sync
loop
the timer() function gets what's called system time. The absolute value of this doesn't really mean much. However, it increases 1000 times every second. So by subtracting one timer() call from another timer() call, you get change in time!