You can do what you want in two steps, if that's helpful.
First, ensure the point rests on the plane at 0 height. You could do this using the Item tab in the N panel (so called because the default keyboard shortcut to view it is N). This will give you the Transform dropdown header part, as such:
If you set the Global Z position of a vertex to 0, it will now be on the 0 height plane.
An alternative way would be go to side view and transform it there manually, perhaps using absolute grid snap to ensure it snaps exactly to 0, but as you've said it's at some random position it might be a long way off so setting it numerically may be faster.
Once it's at that coordinate on the Z, when you are moving it with Grab, you can use shift-Z by default to lock the Z coordinate and allow free transformation on the X and Y plane. With absolute grid snap turned on, this will then mean that it will indeed snap to each of the visible grid intersections on the 'ground' grid.
While this won't speed up taking a set of random points and snapping them to the floor all that much, the axis lock is very fast for things that are already on the floor, to keep them there.