Depends how perfect you need the collisions on the enemy. Since you know how to make them move towards the player, you could just add a draw event with this and draw them at their closest 16 grid position.
Code:
//draw event
draw_sprite(sprite_index, image_index, round(x/16) * 16, round(y/16) * 16)
This doesn't move the mask though. If you needed the mask to move as well, you could store the x and y position, apply the grid code, draw it, then restore the x and y position, as below:
Code:
//draw event
var x_temp = x;
x = round(x/16) * 16;
var y_temp = y;
y = round(y/16) * 16;
draw_sprite(sprite_index, image_index, x, y);
//at the end of the draw event
x = x_temp;
y = y_temp;