The pixel snapping should really be performed by unity when it goes to render an object. We can't hook into that part of Unity or we could do it properly, automatically. They try to do this with a vertex shader as far as I can tell in the unity 2d system but that fails horribly in places too.
But what you could do is -
keep your own internal position and update that as opposed to the transform.positon. At the end of your update, assign a pixel snapped internal_position to transform.positon. If your camera is 100 pixels per meter, you will need to round to closest 0.01, etc.