It actually is rather easy, just put an invisible unit in the center of each hex, and for unit movement have a ability with a max distance cast point, have it get the closest invisible-hex-unit to targeted point and have them move to the center of the hex (where the invisible unit would be ). With a few error and invalid movement conditions, it should work fine.
What is UTM?