Faits: A. A._ est en détention préventive depuis le 8 avril 2008, date à laquelle il a été interpellé au gymnase X._ en possession d'une arme à feu et de munitions. Il est prévenu de mise en danger de la vie d'autrui et d'infraction à la loi fédérale sur les armes. Il s'était rendu le matin même dans ce gymnase où il étudiait, apportant dans son sac un pistolet, trois chargeurs et environ cinquante cartouches. Il a sorti une première fois son arme alors qu'il était seul en classe avec B._, une gymnasienne dont il était épris. Il lui aurait fait part de son intention de se suicider. Il a alors quitté les lieux pour se rendre dans un garage loué par son père. Surpris par ce dernier, il est retourné au gymnase, avec son arme et ses munitions. Il aurait d'abord voulu s'enfermer dans une salle de classe avec B._ et l'infirmière du gymnase. Alors qu'il discutait avec le doyen de l'école, il aurait remarqué la présence de la police et aurait sortit son arme et fait un mouvement de rotation avec celle-ci, avant d'être immédiatement maîtrisé par les agents. Le prévenu a toujours affirmé qu'il n'avait pas voulu faire de mal à qui que ce soit, mais qu'il avait uniquement l'intention de mettre fin à ses jours. Le 21 avril 2008, le juge d'instruction a ordonné une expertise psychiatrique de A._, demandant à l'expert désigné de se prononcer sur l'existence d'un trouble mental, la responsabilité, le risque de récidive et les mesures et traitements à entreprendre. B. Le 13 mai 2008, A._ a présenté une demande de mise en liberté provisoire, à l'appui de laquelle il a déposé un courrier du 7 mai 2008 du Centre de Psychiatrie du Nord Vaudois. Aux termes de ce courrier, l'hôpital en question est ouvert à tout patient présentant des critères de soins aigus, mais il n'était pas possible de se prononcer sur le cas de A._, en l'absence d'une évaluation par le service de psychiatrie pénitentiaire ou par un expert psychiatre. Le Juge d'instruction de l'arrondissement de Lausanne (ci-après: le juge d'instruction) a rejeté la requête par ordonnance du 15 mai 2008, au motif que l'intéressé présentait un danger pour la sécurité ou l'ordre publics et parce qu'il n'y aurait pas d'encadrement médical mis en place à sa libération. Par arrêt du 2 juin 2008, le Tribunal d'accusation du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal cantonal) a rejeté le recours que A._ avait formé contre cette ordonnance. Il a considéré qu'il existait des "présomptions suffisantes de culpabilité" au sens de l'art. 59 al. 1 du code de procédure pénale vaudois (CPP/VD). Le maintien en détention était motivé par un risque de récidive, résultant de l'état psychique du prévenu; il convenait donc d'attendre les conclusions, à tout le moins verbales, de l'expert psychiatre. Le Tribunal cantonal relevait également que la présente affaire avait été médiatisée et avait "suscité un grand émoi dans la population", de sorte qu'une mise en liberté pourrait être considérée comme choquante et porter ainsi atteinte à l'ordre public au sens de l'art. 59 al. 1 ch. 1 CPP/VD. Enfin, le principe de proportionnalité était respecté. C. Agissant par la voie du recours en matière pénale, par acte du 16 juin 2008, A._ demande au Tribunal fédéral de réformer cet arrêt en ce sens que sa mise en liberté immédiate soit ordonnée, subsidiairement d'annuler l'arrêt attaqué et de renvoyer la cause à l'autorité inférieure. Il conteste l'existence de présomptions suffisantes de culpabilité, d'un risque de récidive et d'une atteinte à l'ordre public. Il se plaint également d'une violation du principe de célérité. Le Procureur général du canton de Vaud s'est déterminé; il conclut au rejet du recours. Le Tribunal cantonal se réfère aux considérants de son arrêt. Ces écritures ont été communiquées au recourant, qui a présenté des observations complémentaires le 3 juillet 2008.