you should be able to just round the scroll position it returns before passing back in the next frame, like this...
var barRect:Rect=Rect(0,0,200,16);
var scrollPos:float=0;
function OnGUI()
{
scrollPos=GUI.HorizontalScrollbar(barRect,scrollPos,1,0,5);
//round positions off so they "snap" to integer positions
scrollPos=Mathf.Round(scrollPos);
}
:Edit: realized I missed half the point there; easiest way to get the rest would just be to round as I said above and multiply the scrollPos by 2 to get a scaledScrolledPos.