I just thought this on the fly, so it might not work, but you can try
1. Check whether the player collides with the block
2. Check whether the push button if pressed, if so, change the state of the block to "dragable"
3. While it is "dragable" and arrow button is pushed, move the block with simulate control (8 direction) the same speed and direction as the player
4. If the push button is not pressed, change the state of the block
hope that helps