There is a listview with several fields in delphi. A thread checks and adds items to listview. If there is the same caption, an integer will be added in the subitem of this
Several years ago we found that in addition to BeginUpdate / EndUpdate changing the ListView's ViewStyle to vsIcon prior to adding large amounts of data to it, and back to vsReport after we were done vastly improved performance. That was on Windows 98 and Windows 2000 if I remember correctly so I am not sure whether this is still the case.