Для Delphi есть такая замечательная компонента Virtual Treeview. Очень гибкая и настраиваемая, но в один момент гибкости не хватило. Требовалось подстраивать ширину колонок так, что бы в них помещался текст полностью. В Virtual Treeview есть метод AutoFitColumns который это может сделать. Но проблема в том, что ему приходится проверять ширину текста каждого элемента. Соответственно если их много то метод AutoFitColumns будет выполнятся слишком долго.