Самый лучший способ, это css. Поскольку большинство скроллбаров на javascript подменяют нативный интерфейс скрола, из-за чего, например, перестают работать клавиши (приходится эмулировать на js), и перестает работать плавная прокрутка при нажатии средней кнопки мыши.
Статьи на тему кастомизации скроллбара на css:
css-tricks.com/snippets/sass/custom-scrollbars-mixin
codemug.com/html/custom-scrollbars-using-css
Нужно учитывать, что в данный момент нет способа для ФФ
Для большей кроссбраузерности, и чтобы получить больше свободы в кастомизации, я написал собственный плагин на jquery:
jquery.custom-scroll
Отличительная особенность от других плагинов — он не убирает нативный скролл полностью, а прячет, благодаря чему нет проблем описанных выше.
Есть похожее решение на js -
baron.js - он не требует jquery, но весит вчетверо больше.