Ok, i tried with thdtimer and Application.OnIdle := Idle;
It works in both. Speed seems fine but i dont understand why the picking has offset to the left when at the right i must move mouse cursor almost to the center of the tile for it to disappear. Down seems also bad. Especially when moving mouse slowly i can see how it almost goes to the center of the tile and then tile disappears.

When i move to the left, tile disappears even without touching it. Very big offset. same with UP.

Strange. I have to drink some coffee, maybe im sleepy. Just woke up.