Why doesn't the timeline speed match reality?
When the timeline is set to "No Sync" (to the right of the playback buttons) Blender will try to display every single frame, even if doing so can take more than 1/24th of a second, therefore it will lag behind. This happens if the scene is too complicated (too many vertices, complex modifiers, rendered view being enabled, etc) for the hardware to handle quickly.

Changing to "Frame Dropping" will tell Blender to skip as many frames as it's needed to catch up with the real time. It will be synced, but be aware that it could be skipping a substantial amount of frames.