Можно блоку с контентом банально задать owerflow: auto, и просто отлавливать событие scroll на нём. Скрыть полосу прокрутки можно поместив блок в другой, фиксированной ширины, но с owerflow: hidden, а внутреннему задать float: left, например, и растянуть с помощью ::before с заданной шириной