Обычно такое верстают JS+CSS.
- Скрывается обычный select
- Рисуется див с нужными стилями и событиями
- При клике на фейковый option - в реальном select выставляется нужное значение.
В принципе ничего сложного. Можно посмотреть как
тут сделано. Или
тут.