The timing question is a good one.
Actually there are two things to note.
1. Speed
Actually most Emulators COULD run at (nearly) exact speeds.
The Problem most likely that most speeds are "guessed".
As for MAME... Actually pretty much no arcade hardware runs at exactly 60Hz (though MAME may say so). Most speeds are "guessed".
So most emulators will limit their speed to some factor, for example the Vertical Refresh.
In theorie you should avoid tearing by using triplebuffer but NOT vsync.
But... practically every emulator nowadays automatically will enable vsync if you enable triple buffing so thats now gets us to the second thing...
2. The VSync Problem.
So... If you enable VSync on a 60Hz Screen, and your game would run at 61Hz (just as example). You actually slow things down. Now MOST emulators will try to match that slowdown by skiping frames every now and then. THATS where you get stuttering in the video.
That can be solved (MAME wise) if you disable autoframeskip, throttle, AND set frameskip to 0.
With BASE MAME you'll get sound stuttering now, as the emulated sound chip doesn't provide enough data for the soundcard. There are some builds (MAMEUIFX, CabMAME etc.) that feature my "soundsync" that will get rid of that problem, though it slightly changes the pitch/speed of the sound. In pretty much every case you won't notice that. (Exception would be R-Type run at 53Hz Mortal Kombat resolution instead of its original 55Hz).
Some may try out cabmame (in a fresh directory) WITHOUT "tweaking" the INI files. (Most ppl tend to make things worse when they try to make it better).
As for other systems...
Well I'm using a "hacked" Version of ZSNES for my SNES emulation and I never noticed "stuttering". The "hack" actually forces pixel perfect output (I run it in 512x240, instead of the SNESs "native" 512x224). That works pretty good. Just take care you use a NTSC (meaning Japanese or US) version of the game.
Give it a try @
http://files.arianchen.de/zsnesw.zipBottomline...
If you want "smooth" gameplay....
1. ENABLE Tripplebuffer/VSync.
2. DISABLE any frameskipping.
3. Match the resolution as close as possible to the one we need.
ArcadeVGA and Soft15kHz both will provide NTSC compatible timings (240/480 lines) and PAL compatible timings (288/600 lines).
P.S. you can't match the perfect speed as there is no operation system that allows direct control of the graphics card... No not even Linux.