Смысл в том, что делаем еще один внешний div с overflow: hidden , а на данный div вешаем overflow: scroll и делаем его ширину больше чем экран или родительский div на ширину системного скрола. Скролл остается, просто его не видно. И все работает. (вот тут подробно habrahabr.ru/company/2gis/blog/169359/)
На самом деле свойство height, указанное в %, работает только если для внешнего блока указана высота. Либо для элементов с абсолютным позиционированием. В этом случае нужно указать top 0 и left 0