Допустим у нас есть список
FItems: TObjectList;
Тогда мы можем сделать так
procedure SortByParamName;
function CompareItemsByParamName(aItemOne, aItemTwo: Pointer): integer;
begin
Result := CompareStr(TCurrentValue(aItemOne).paramValueKind.ParamName, TCurrentValue(aItemTwo).paramValueKind.ParamName);
end;
begin
FItems.Sort(@CompareItemsByParamName);
end;