First... NTP generally is designed to adjust your clock periodically... yes... but it's also generally understood that it only checks infrequently. Initial checks are usually once every few minutes... and after a baseline is established... it drops back to every few hours. If you query a NTP server too frequently, they're likely to simply ban you.
That being said, most virtual server frameworks include some sort of tool package that includes a tool that is used to keep the host & guests in sync. Hyper-V is the only animal that only plays nice with Windows. (Microsoft started making tools for Linux... then once the driver-base made it into the kernel source... completely stopped supporting it... forcing the linux kernel team to yank what MS added.) There are a few work-arounds for many such situations... but more info on what flavor of VM environment you're working with would help.
Edit It appears as if Microsoft has finally managed to get support for their hypervisor back into the linux kernel. (as of Windows 2012 R2) Lets hope they continue to support it. I have not tested it, and have not looked into all the details. But given Microsoft's history... I personally wouldn't rely on it just-yet.
As for answers to your last 2 questions... A) The clock drifts... because it isn't using the hardware clock... but rather a CPU-Tick based clock (most OSes do this) that is far more precise than the standard clock. Unfortunately... when this is done... the number of CPU ticks isn't a constant in a virtual machine... and so... the RTC clock will drift. Generally if you have an application query the hardware clock directly... it'l return pretty near spot-on. And B)... I'm not sure how to configure the "Meinberg NTP" service... but I also suggest you don't touch it.