I think it's a hardware limitation, the monitor may simply not fast enough.
I wouldn't say this this to your boss. It doesn't really make any sense.
The monitor is fast enough. It consistently redraws at whatever refresh rate it is set to redraw at (and based on what you said, it is set to redraw at 60Hz).
Attempting to draw faster than the refresh rate is pointless, because whatever you draw won't be visible until the next time the monitor refreshes. So you can draw a scene at 1000 FPS, but if the monitor is refreshing at 60Hz, the end user will only see 60 FPS. All those additional frames that you draw in between will never be seen (or will only be partially seen in the form of "tearing", an ugly video effect that distorts the image)
The only other thing I can think of is the way you're doing the timing:
x += force_x * mainRenderWindow.GetFrameTime();
y += force_y * mainRenderWindow.GetFrameTime();
While this is a commonly used technique because it's simple, it's actually kind of wrong. You're drawing the
next scene based on how long the
previous frame was.
If, for example, you get a slow frame (40 ms) mixed in with your normal frames (let's say 20 ms to keep the math simple). What will happen is the slow frame will draw normally, and the following frame will skip way ahead because the previous frame was slow. This will result in a "jump" that will be especially noticable on things that are moving high speed.
The only way to solve this is to VSync, since that's the only way you can be "sure" that every frame will be the same length. Otherwise you're at the mercy of the scheduler.
If you VSync, though, the above code should work fine and there shouldn't be any jumping.