Спасибо Dmitry_4501. Есть вариант решения. В стиле под TTreeViewItem подкладывается прямоугольник. и дальше организуется подобный цикл
Подобный подход достаточно гибкий. Можно раскрашивать не в два, а в три цвета, например. Но есть "всякие но и если".
Если какой-то узел мы делаем невидимым Item.Visible:=false, то и все его дочерние узлы надо не забыть сделать невидимыми
развертывание/свертывание узлов, добавление/удаление/перемещение, сокрытие (само собой) - надо не забыть и переопределить цвета бэккграунда
Прямоугольник по своей ширине не совпадает с шириной дерева.
Вот тут видно - каждый следующий уровень вложения и прямоугольник все Уже и Уже. Если уровней 1-2, то не портит картинку, на мой взгляд, но если 3-4 или больше, то уже может резать глаз кому-то. Стандартное раскрашивание заполняется на всю ширину. И стандартное раскрашивает все само, что очень удобно ))), а так придется следить за деревом... Само не перерисуется (((
Если у кого появятся еще идеи - буду признателен...
UPD
Margins.Left:=-1000 для прямоугольника бэкграунда решает проблему лесенки. Все получается во всю ширину и очень опрятно.