Thank you. That is very helpful and much simpler than the approach we had attempted.
Notes for anyone that may download this:
1) As-is, only compiles with XE2. Remove the scoping from the units in the uses clause (such as 'Vcl.') for earlier versions. That's all it took for XE.
2) Drag & Drop not working in the top section until I changed this:
procedure TForm1.SectionListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
...
if (sectionidx > 0) and (subitemidx >= 0) then
to this:
if (sectionidx >= 0) and (subitemidx >= 0) then