You will want to use a dynamic list for this. If it is very common then you can use the designer to define a TypedList.
For your example you could use something like
// C#
DataAccessAdapter adapter = new DataAccessAdapter();
ResultsetFields fields = new ResultsetFields(2);
fields.DefineField(EmployeeFields.FirstName, 0, "Name", "Qualification");
fields.DefineField(EmployeeFields.Year, 1, "Year", "Qualification", AggregateFunction.Max);
IGroupByCollection groupByClause = new GroupByCollection();
groupByClause.Add(fields[0]);
DataTable dynamicList = new DataTable();
adapter.FetchTypedList(fields, dynamicList, null, 0, null, true, groupByClause);