What you could do, is create a new method (a modification of the 'fall' method, which deals with vertical movement) to control the horizontal movement (using 'getOneObjectAtOffset(getX(), getY()+Math.signum(speed), balk.class)').
I think you lost context of where the discussion was going. I am suggesting that you duplicate (with some modifications) the 'fall' method so that horizontal movement will be controlled just as the horizontal movement is currently controlled.