what you need is what we call fake-full-screen, this is not an engine related workaround, this is how Windows works with/handles full-screen apps.
A fake full screen window essentially means a normal window without frame/border at 0,0 of the screen and has same width/height as the screen.(optionally forced to be always on top). Check manual for video_* functions.
About sync stuff: it's not really 100% possible to make any engine spit-out frames at the same rate as screen refresh rate, when things are fast you can always limit frames(with fps_max) but when your fps drops below screen refresh rate you can do nothing about it.(except for optimizing your game's performance.)