The monitor is a pure slave device. It will accept frames at whatever rate the video source sends them as long as it is within its capabilities. Depending on the monitor design, it may attempt to convert the input frame rate (by duplicating/dropping frames or some more complicated method) to something else. Fully analog video paths are not capable of this, and this describes the vast majority of multisync and standard definition CRT monitors and TVs (including those with digital OSD and such - the video input path is still analog in most designs). High-end LCDs and plasmas are also capable of driving the panel at somewhat arbitrary refresh rates, though their range is smaller than high-end multisync CRTs. Low-end LCD and plasmas usually have a very limited range floating right around 60Hz and will have to convert everything to something in that range.
CRT arcade monitors are usually capable of syncing between 47-63Hz. Adjustment to a "VHOLD" or "VFREQ" or "50/60Hz" control may be required as this rate is varied on some monitors. Some, especially newer multisyncs, can go quite a bit higher. Some arcade games ran at oddball frequencies. Mortal Kombat II, for example, is about 53Hz.
Now, that handles the monitor. Further complicating the situation is the PC hardware and software.
On Windows, it's damn near impossible to actually ask for and get an exact set of video timings, even if you know exactly what you want. The interface to ask for anything more specific than "visible resolution + refresh rate" is driver specific and often requires a reboot! Even then, most drivers will give you something close and call it good enough. This makes attempting to time things based on the vertical refresh rate darn near impossible. Some arcade games have made this mistake when moving from dedicated or console-based platforms, where such timing behavior is common, to PCs.
On Linux, you can certainly ask for an exact set of video timings using XRANDR or as a mode in the X configuration file, but what you'll get again depends on the driver. Usually it's close, but it won't be exact. It'll be whatever is closest that it's possible to program the PLL on the video card to.
The software also has to know how to ask. MAME does not ask for exact video timings in any situation, at least not that I'm aware of. MAME asks for a visible resolution and approximate framerate (IIRC, Windows is limited to specifying integer framerates, but I could be wrong on this). Sometimes, it would be possible to use this information to work out exactly what game MAME is playing and set the video hardware to the closest possible setting, but sometimes this information is ambiguous, and again, the video hardware may not be able to hit EXACTLY what the original game expects. The ArcadeVGA, for example, comes pre-programmed with a list of such pairs ("what MAME asks for" vs. "what you get in an attempt to match what MAME really wants") for common games.
I don't know enough about the internals of MAME to know how it handles any remaining discrepancy when attempting to output "native" video. In theory, it would be possible to back-time the entire emulator based on the actually-obtained vertical refresh rate (the remaining mismatch likely being imperceptible), but I don't know if it does this, and it would slightly compromise the accuracy of the game timing, though probably not any worse than other issues surrounding timers on a preemptive, multitasking OS running on a general-purpose PC. If it does not do this, which I don't think it does, the visual behavior will depend on your output settings (wait for vsync, triple buffer, etc.). If wait for vsync is enabled, a frame will (very) occasionally be dropped to compensate for the slight difference in refresh rates between the emulated machine and the actual video output. If triple buffering is also enabled, then a frame might occasionally be duplicated, instead, if the output runs faster than the emulation. If wait for vsync is disabled and triple buffering is disabled, then a tear line will (very) slowly scroll up or down the screen. This might happen so slowly that it never makes it out of the inactive video region while you're playing, if the two rates are very close.
In general, it's considered poor design for a PC application to require a specific set of video timings for proper operation. The preferred method is to draw frames as fast as possible, or as fast as the output is going, waiting for vsync, and to time the application itself off a more "consistent" timer facility. Essentially, one should decouple the video timings from the timings of the application as a whole. This actually goes for other hardware-generated timings, too, such as audio sample clocks. Unfortunately, emulation of arcade games results in video (and audio) running at exactly a specific set of timings, so this is unavoidable.
If you want to measure the exact timings used by a game PCB, there are a few ways to do it. The easiest method is to use an instrument commonly known as a "frequency counter" on the hsync and vsync lines. This will give you the exact frequency of that signal accurate to whatever the instrument is capable of (generally 0.1Hz or better). Measuring hsync+vsync rates and knowing the active video resolution, which you can usually infer from a little reverse engineering of the software, gives you enough information to fully emulate the game (the only missing information is the distribution of the time between the front and back porches, which just determines the centering of the video on the monitor). Of course, sometimes you can just ask the former game developers for this information
