Désolé si je reprends quasiment tel quel ce que tu as déjà lu...
Mon hypothèse irait plutôt en faveur de Gandalf. On sait qu'il peut intervenir dans les rêves : c'est le cas pour Frodon notamment (d'ailleurs il râle parce que Frodon a mis du temps à s'en rendre compte ;-).
Gandalf, ou Olorin, est en effet le Maia "conseiller d'Irmo", le "maître des visions et des rêves" (CLI, IV, 2).
Ce même passage de CLI, IV, 2 confirme cette idée : lorsqu'Olorin passait entre les Elfes, "ils ne savaient pas d'où leur venaient les visions magnifiques ou les éclairs de sagesse qu'il mettait en leur coeur".
Certes, en tant qu'humain, Boromir n'a pas la même faculté de recevoir ces visions (cf. Osanwe-kenta). Toutefois, il a une certaine familiarité avec Mithrandir qui venait les voir, Faramir et lui, depuis leur enfance.
C'est d'ailleurs dans les paroles même de Faramir que je crois trouver un indice de cette origine :
"Ce Mithrandir était, je le conjecture à présent, plus qu'un simple maître du savoir : un grand moteur de tous les exploits accomplis dans notre temps. S'il eût été parmi nous pour délibérer sur les dures paroles de notre rêve, il nous les aurait rendues claires sans besoin d'un messager. Mais peut-être ne l'aurait-il point fait et le voyage de Boromir était-il arrêté." (SdA, IV, 5 ; Cent., p. 719).
Je pense que Gandalf n'aurait pas clarifié ce rêve, puisqu'il voulait amener Boromir à se rendre chez Elrond (et Faramir ne croit pas si bien dire que le messager eût été inutile si Gandalf avait été là, puisque le rêve venait précisément de lui ;-)).
Gandalf évoquera ce rêve en terme d'énigme (p. 274), lors du conseil d'Elrond, en s'adressant à Boromir ; or Gandalf est un habitué des énigmes dont il connaît la réponse.
Pourquoi n'est-il pas allé à Minas Tirith pour demander explicitement à Faramir ou à Boromir de venir ? A mon avis, c'est parce qu'il savait qu'il avait déjà une sale réputation (en ne venant que pour les mauvaises nouvelles) et qu'il trouvait plus judicieux que la décision vienne du rêveur, directement. En plus, ça lui évitait le trajet... ;-)

