Como que a função Sort está comparando o tempo
aulas.Sort();
Imprimir(aulas);
aulas.Sort((este, outro) => este.Tempo.CompareTo(outro.Tempo));
Imprimir(aulas);
Se na definição da função CompareTo . se compara o titulo do objeto ?
public int CompareTo(object obj)
{
Aula that = obj as Aula;
return this.titulo.CompareTo(that.titulo);
}