Only thing I would suggest is a lerp on the scroll.
Something like set scrollx to lerp(scrollx, mouse.x, (msyspeed*LayerScale(layer))*dt))
That gives you a speed, and a multiplier based on the layer scale.
Grab to scroll can be a little more complicated: distance(tStartx,LayoutHeight/2,Touch.X,LayoutHeight/2)>128?lerp(scrollx,Touch.X>tStartx ?tStartx-distance(tStartx,LayoutHeight/2,Touch.X,LayoutHeight/2) :tStartx+distance(tStartx,LayoutHeight/2,Touch.X,LayoutHeight/2),1.5*dt) :scrollx