Theoretical solution...
1. create a called by other action.
2. add these action parts.
execute a script > (see block below)
local spos = game.ScrollPosition
local cpos = getCursorPos()
game.CurrentCharacter.Destination = { x = spos.x + cpos.x, y = spos.y + cpos.y }
pause for 50ms
jump to action part #1
3. call this action in the mouse hold button action of the mouse properties tab.
4. quit this action in the mouse button release action of the mouse properties tab. Also add a stop character action part to stop the character from walking.
It should work, but as I said, it's purely theoretical.