Dans trois heures ont sonné, j'ai entendu trois fois sonner l'heure : il s'est donc passé trois heures de temps, trois heures se sont écoulées.
Dans trois heures a sonné, c'est le quantième "trois heures" qui a sonné : j'ai entendu les trois coups, je sais qu'il est trois heures.
Trois heures a sonné sonne peu naturellement dans mes oreilles bien que je trouve la différenciation logique. N'est-il pas ainsi qu'au quotidien, le sens de ...ont sonné donné par piotr est rarement employé ce qui rend possible une utilisation du deuxième sens (plus répandu) ? (Trois heures ont sonné = j'ai entendu les coups qui m'annonçaient qu'il est trois heures)