One dirty trick would be to use a mask to hide that square.
Something like this :
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="creationComplete()">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
public function creationComplete():void
{
var compMask:UIComponent = new UIComponent;
compMask.graphics.beginFill( 0xff0000 );
compMask.graphics.drawRect( 0, 0, comp.width, comp.height - 16 );
compMask.graphics.drawRect( 0, comp.height - 16, comp.width - 16, 16 );
compMask.graphics.endFill();
addChild( compMask );
comp.mask = compMask;
}
]]>
</mx:Script>
<mx:Canvas id="comp" width="300" height="300" horizontalScrollPolicy="on" verticalScrollPolicy="on"/>
</mx:WindowedApplication>
Just tried it, it works. You'll just have to redraw the mask each time the component is resized. Best thing would be to create a custom class which extends Canvas and do the job itself.
EDIT: Of course, you will want to change "16" by the weight of your custom scrollbars if the value is different.