If completely switching the graphics output didn't help, I doubt this can be solved inside KeeperFX.

Either video driver has a bug, is set to ignore vsync, or there's another program interfering with KeeperFX.

Try updating driver and DrirectX version; if this won't help - I don't think I have solution other than windowed mode.

Sooner or later I will switch to new SDL library which supports "frameless windowed mode" - this will solve such situations.