В общем, сделал пока вот так:
var
Source: TListViewItem;
Target: TListViewItem;
begin
ListView1.BeginUpdate;
Source := ListView1.Items[0];
Target := ListView1.Items.Insert(1);
Target.Text := Source.Text;
Source.Text := ListView1.Items[2].Text;
ListView1.Items.Delete(2);
ListView1.EndUpdate;
end;
В этом случае придется вручную копировать содержимое каждого итема. Кому интересно, вот тестовый проектик с перетаскиванием итемов мышью
Demo.zip
Ну а если кто может предложить вариант получше, не стесняйтесь