Да, можно и без второго списка реализовать:
std::unique_ptrTStringList> slSections(new TStringList());
MyIni->ReadSections(slSections.get());
const int sz = slSections->Count;
slSections->Sorted = true;
for(int i=0; isz; i++) {
if(i > 0 && slSections->Strings[i] == slSections->Strings[i-1]) {
ShowMessage("Файл содержит дублирующиеся секции!");
break;
}
}