Если нужна глубокая кастомизация элементов управления — используйте WPF. Он и быстрее и гибче (требования к ОЗУ вырастут не сильно, по сравнению с формами).
Senture, на WPF намного проще, для WinForms можно посмотреть библиотеки как MaterialSkin, DarkUI, но нет гарантий что там переопределено именно то, что вам нужно.
Ну почему же, вполне получится. Например, можно сделать вот такой выпадающий список с поиском по мере ввода, кастомной полосой прокрутки, кастомными элементами и другими плюшками:
(подробнее...)
Вот только такой список нормально отрабатывает с порядка тремя-четырьмя десятками элементов, а дальше начинается веселье под название "тормоза", т.к. что-то где-то сделано криво и надо писать ручками рендеринг только видимых элементов, а невидимые элементы отсоединять от дерева окон. Вот пример того же списка на WPF: