Сетку через циклы нарисовать можно. Узнаем ширину, высоту TImage, определяемся сколько ячеек надо по вертикали и горизонтали, делим ширину\высоту на количество ячеек и рисуем по циклу вертикальные и горизонтальные линии с заданным шагом. вот и получится сетка. 
 
С прилипанием курсора наверно мудрено получится... лучше так: 
обьявляешь переменную TPoint, и алгоритм ее изменения по событию MouseMove пишешь, чтобы она приравнивалась к координатам того узла сетки к которому ближе всего указатель мыши. Таким образом прилипать будет не сам курсор а TPoint, а процедуры рисования можно привязывать к координатам TPoint а вызывать из MouseMove после изменения координат TPoint'a. 
		
	
		
		
		
		
		
	
		
		
	
	
	 |