Faits:
A. Le 20 février 2006, le Juge d'instruction du canton de Fribourg Olivier Thormann s'est adressé au Bureau du Conseil Général de la ville de Fribourg. Il exposait avoir pris connaissance du rapport de la commission chargée d'enquêter sur l'établissement des responsabilités de l'état financier de la caisse de prévoyance du personnel de la ville de Fribourg (ci-après, la commission d'enquête), ce qui avait conduit à l'ouverture d'une instruction pénale pour faux dans les titres. Il demandait la production de l'intégralité des procès-verbaux d'auditions, des bilans de la caisse de pension et de la ville de Fribourg.
Entre le 27 novembre 2006 et le 1er février 2007, le Juge d'instruction a entendu plusieurs personnes à titre de renseignements, parmi lesquelles le Syndic de la ville de Fribourg et D._.
Par lettre du 23 juillet 2007, le Juge d'instruction fit savoir notamment à D._ qu'après l'avoir entendu et étudié le dossier, il avait décidé de le mettre en prévention de faux dans les titres: il lui était reproché d'être coresponsable de l'inscription insuffisante, au pied du bilan, de la garantie accordée par la ville à la caisse de pension, de 2000 à 2003. La gravité des faits ne justifiait pas un renvoi devant un tribunal, de sorte que l'affaire pouvait être close par une ordonnance de condamnation, à laquelle le Ministère public avait en principe déjà consenti. Une nouvelle audition n'était pas nécessaire. Un délai était imparti au prévenu pour requérir une audition, présenter ses observations ou demander d'éventuels compléments de preuve. Le dossier pouvait être consulté.
B. Le 23 août 2007, le Juge d'instruction informa les prévenus qu'il s'apprêtait à diffuser le communiqué suivant à la presse:
"Dans l'affaire de la caisse de pension de la ville de Fribourg, quatre personnes ont été mises en prévention pour faux dans les titres.
En octobre 2006, le juge d'instruction Olivier Thormann avait ouvert une procédure pénale pour faux dans les titres dans l'affaire de la caisse de pension de la ville de Fribourg. Ayant terminé ses auditions, répertorié les pièces utiles et informé les personnes concernées, le juge est aujourd'hui en mesure de rendre publiques ses premières décisions.
Quatre personnes, trois employés communaux et Monsieur A._, ancien directeur des finances de la ville de Fribourg, sont prévenues de faux dans les titres, pour avoir, entre 2000 et 2003, minimisé l'engagement conditionnel que la ville avait pris en faveur de sa caisse de pension. La situation économique a ainsi été dépeinte de façon trop positive par rapport à la réalité.
En revanche, le juge d'instruction n'a pas prononcé de mise en prévention liée à la non inscription, au pied du bilan des comptes de la ville 1995-1999, de la garantie accordée à la caisse de pension, faute qui relève de la négligence, raison pour laquelle toute action pénale serait prescrite.
Si, au terme de la procédure, les quatre personnes devaient être condamnées, cela pourrait, en vue de l'importance des reproches, se faire par simple ordonnance pénale.
Par ailleurs, aucune instruction pénale n'a été ouverte à l'encontre de Monsieur Dominique de Buman.
Par lettre du 24 août 2007, l'avocat de D._ a estimé que le communiqué ne répondait à aucune nécessité, qu'il était prématuré et violait la présomption d'innocence. Le communiqué a néanmoins été diffusé tel quel le 27 août 2007. Le Juge d'instruction a par la suite fait des déclarations complémentaires à la presse.
C. Le 11 septembre 2007, D._ a demandé la récusation du Juge d'instruction. Alors qu'aucune procédure contradictoire n'avait encore eu lieu, le Juge d'instruction avait déjà clairement manifesté son intention de rendre une ordonnance de condamnation, indépendamment d'une nouvelle audition des prévenus. Son communiqué de presse était intervenu à un moment inopportun; il contenait des indications inexactes et faisait apparaître comme acquise la culpabilité des prévenus. Ce sentiment était renforcé par les déclarations faites par la suite à la presse. L'impartialité du magistrat n'était plus garantie.
D. Par décision du 30 novembre 2007, le Président de l'Office des Juges d'instruction du canton de Fribourg a rejeté la demande de récusation. Le Juge pouvait d'abord entendre les intéressés à titre de renseignements, afin de déterminer qui devait par la suite être mis en prévention. Cette procédure en deux temps respectait les droits des prévenus, notamment la présomption d'innocence. Même si le magistrat avait manifesté son intention de clore la procédure en rendant une ordonnance pénale, les prévenus pouvaient faire valoir leur droit d'être entendus et de requérir des compléments d'instruction. Selon la loi et la jurisprudence, un juge d'instruction était d'ailleurs considéré comme suffisamment impartial pour ouvrir ou compléter une instruction, même après avoir rendu une ordonnance pénale. Le communiqué de presse écrit était conforme à l'art. 72 al. 2 CPP/FR, le Juge d'instruction ayant à plusieurs reprises rappelé le principe de la présomption d'innocence. Sa diffusion le 27 août 2007 pouvait paraître prématurée, mais cela s'expliquait par la nécessité d'exculper Dominique de Buman, à la veille des élections fédérales auxquelles celui-ci se présentait.
Par arrêt du 21 décembre 2007, la Chambre pénale du Tribunal cantonal de l'Etat de Fribourg a déclaré irrecevable le recours formé par D._: le droit cantonal ne prévoyait pas de recours en matière de récusation d'un juge d'instruction.
E. Par acte du 17 janvier 2008, D._ forme un recours en matière pénale. Il conclut à l'admission de sa demande de récusation, subsidiairement au renvoi de la cause à l'autorité intimée pour nouvelle décision au sens des considérants.
Le Président de l'Office se réfère à sa décision. Le Juge d'instruction et le Ministère public concluent au rejet du recours dans la mesure où il est recevable.
Considérant en droit:
1. Conformément aux art. 78 et 92 al. 1 LTF, une décision relative à la récusation d'un juge pénal peut faire immédiatement l'objet d'un recours matière pénale. L'accusé et auteur de la demande de récusation a qualité agir (art. 81 al. 1 LTF). Le recourant a agi dans le délai de trente jours prescrit à l'art. 100 al. 1 LTF. La décision attaquée est rendue en dernière instance cantonale, puisque le droit fribourgeois ne prévoit pas encore d'instance de recours au sens de l'art. 80 al. 2 LTF, ce qui est admissible tant que le délai prévu à l'art. 130 al. 3 LTF n'est pas échu.
2. Le recourant se prévaut des dispositions relatives à l'indépendance et à l'impartialité des magistrats (art. 6 par. 1 CEDH, 30 al. 1 Cst., 31 al. 1 Cst./FR et 54 let. c OJ/FR). Il relève que cette dernière disposition s'appliquerait à l'ensemble des magistrats et que le Juge d'instruction assumerait des fonctions judiciaires, dans la mesure où il peut rendre une ordonnance pénale valant jugement en l'absence d'opposition. Le communiqué de presse du 27 août 2007 contiendrait des informations fausses et tendancieuses, préjugeant de l'issue de l'instruction et présentant les soupçons comme des faits avérés. Son but était d'exculper publiquement l'une des personnes mises en cause, Dominique de Buman, dans la perspective des élections fédérales auxquelles il se présentait, mais il n'était pas nécessaire de mentionner les mises en prévention alors que les intéressés n'avaient pas encore pu s'exprimer. Les nombreuses déclarations complémentaires faites par la suite oralement à la presse n'étaient nullement nécessaires; elles violeraient le principe posé à l'art. 72 al. 2 CPP/FR selon lequel les informations sont en principe données par écrit, et renforçeraient l'impression que le juge avait déjà une opinion définitive. Les rappels "pro forma" du principe de la présomption d'innocence ne changeraient rien à cette impression. Le Juge d'instruction aurait, par ses diverses déclarations, donné l'impression de s'être forgé une opinion définitive, quelles que puissent être les explications de la défense: dans sa lettre du 23 juillet 2007, il avait précisé que la procédure pourrait être "sans autre close par une ordonnance pénale", ajoutant qu'une nouvelle audition des prévenus n'était "pas nécessaire", donnant ainsi l'impression qu'il estimait avoir achevé son enquête et acquis une conviction de culpabilité. Le recourant reproche d'autre part au Juge d'instruction d'avoir violé le droit d'être entendu des prévenus (soit leur droit d'accès au dossier et le droit à une instruction contradictoire) en retardant artificiellement leur mise en prévention.
2.1 S'agissant des obligations d'indépendance et d'impartialité d'un juge d'instruction, l'art. 29 al. 1 Cst. (ainsi que la disposition correspondante de la constitution cantonale) présente des garanties similaires à celles qui sont posées à l'égard des autorités judiciaires proprement dites (art. 6 CEDH et 30 Cst.); le magistrat doit instruire à charge et à décharge et est tenu à une certaine impartialité. Dans les enquêtes faisant l'objet d'une large couverture médiatique, le juge d'instruction peut être amené à se prononcer sur l'état du dossier, sans pour autant que sa conviction ne soit définitivement arrêtée (ATF 127 I 196 consid. 2d p. 200 et la jurisprudence citée). Au contraire du juge appelé à s'exprimer en fait et en droit sur le fond de la cause, lequel doit en principe s'en tenir à une attitude parfaitement neutre, le juge d'instruction peut être amené, provisoirement du moins, à adopter une attitude plus orientée à l'égard de l'inculpé; il peut faire état de ses doutes quant à la version des faits présentée, mettre le prévenu en face de certaines contradictions, et tenter de l'amener aux aveux, pour autant qu'il ne soit pas fait usage de moyens déloyaux. Le juge d'instruction ne fait donc pas preuve de partialité lorsqu'il fait état de ses convictions à un moment donné de l'enquête; cela peut au contraire s'avérer nécessaire à l'élucidation des faits. Le magistrat instructeur doit ainsi se voir reconnaître, dans le cadre de ses investigations, une certaine liberté, limitée par l'interdiction des procédés déloyaux, la nécessité d'instruire tant à charge qu'à décharge et de ne point avantager une partie au détriment d'une autre. Les déclarations du juge doivent ainsi être interprétées de manière objective, en tenant compte de leur contexte, du ton sur lequel elles sont faites, et du but apparemment recherché par leur auteur (arrêt 1P.334/2002 du 3 septembre 2002 publié in SJ 2003 I p. 174).
2.2 Contrairement à ce que soutient le recourant, ni la décision de mise en prévention, ni le communiqué de presse du 27 août 2007, dans les circonstances qui ont entouré sa diffusion, ne font ressortir une prévention de la part du Juge d'instruction.
La lettre du 23 juillet 2007 indique clairement quels sont les reproches sur lesquels reposent la mise en prévention de faux dans les titres, soit l'inscription insuffisante, au bilan, de la garantie accordée par la ville de Fribourg à la caisse de pension. Evoquant la possibilité d'une ordonnance pénale, le juge a pris la précaution d'user du conditionnel, tout en précisant que les faits n'étaient pas suffisamment graves pour justifier un renvoi devant un tribunal. Certes, en indiquant qu'une nouvelle audition n'était pas nécessaire, le juge s'est estimé suffisamment renseigné sur la base du dossier d'instruction; il s'agit toutefois là du préalable nécessaire au prononcé d'une ordonnance pénale au sens des art. 160 al. 1 et 187 al. 1 CPP/FR. En donnant aux prévenus l'occasion de s'exprimer à nouveau alors qu'il n'y était pas tenu, le magistrat s'est déclaré prêt à tenir compte des arguments que les prévenus n'auraient pas pu faire valoir jusque-là. La brièveté du délai accordé tient au fait que les parties s'étaient déjà exprimées tant durant l'enquête parlementaire qu'à titre de renseignements dans l'enquête pénale.
Les motifs du communiqué de presse ont été expliqués devant l'instance inférieure: il s'agissait d'exculper publiquement Dominique de Buman, candidat aux élections fédérales. Alors que l'affaire était largement médiatisée avant même l'ouverture de l'instruction pénale, le Juge d'instruction pouvait légitimement considérer que le public ne se satisferait pas de cette simple information, mais désirerait savoir si d'autres personnes étaient impliquées, le cas échéant lesquelles. C'est dans cette perspective qu'il a mentionné les quatre mises en prévention formelles - en ne mentionnant l'identité que de l'un des prévenus, en sa qualité de syndic de la ville de Fribourg -, expliquant en quoi consistaient les charges retenues. L'affirmation selon laquelle le juge avait "terminé ses auditions" n'est certes pas exacte, puisque les prévenus avaient encore demandé à être entendus; le juge faisait manifestement référence aux auditions déjà effectuées à titre de renseignements. Quoi qu'il en soit, le but essentiel du communiqué de presse était de renseigner sur l'état actuel des inculpations. Dans cette perspective, la possibilité donnée aux prévenus de s'exprimer encore une fois n'apparaissait pas comme un renseignement essentiel. Quant à la possibilité de prononcer une ordonnance pénale, elle n'était mentionnée qu'à titre d'hypothèse; on peut aussi y voir la volonté du Juge d'instruction de relativiser l'importance des faits poursuivis, dans l'intérêt des prévenus. Il n'y a aucune apparence de prévention.
Après la diffusion du communiqué de presse, le Juge d'instruction a dû répondre à de nombreuses questions de journalistes. Le recourant relève qu'en principe, ces informations doivent être données par écrit, conformément à l'art. 72 al. 2 CPP/FR, et mentionne des extraits de presse donnant l'impression que le juge aurait définitivement formé son opinion. Le Juge d'instruction affirme pour sa part que certains de ses propos auraient été déformés, ce qui semble confirmé par le fait que, dans la plupart des articles de presse, des condamnations ne sont évoquées qu'avec les réserves appropriées, conformément au principe de la présomption d'innocence. Les quelques expressions maladroites figurant dans la presse ne sauraient par conséquent lui être directement imputées.
Prises dans leur ensemble, les communications faites à la presse ne permettent donc pas d'admettre un cas de récusation.
2.3 On ne saurait non plus reprocher au Juge d'instruction d'avoir délibérément retardé le moment des mises en prévention. Comme le relève l'autorité intimée, il peut se justifier d'entendre préalablement une personne à titre de renseignements, comme le prévoit expressément l'art. 88 let. a CPP/FR, en particulier lorsqu'il y a lieu de déterminer son degré d'implication dans les agissements poursuivis. Le recourant estime que le dossier transmis par la commission d'enquête suffisait pour orienter les soupçons, de sorte que les premières auditions à titre de renseignements étaient injustifiées et avaient privé les intéressés des droits qui doivent être reconnus aux prévenus dès leur première audition (art. 156 al. 1 CPP/FR). Le recourant perd de vue que le rapport de la commission parvenait à la conclusion qu'aucune infraction pénale n'avait été commise. On ne saurait dans ces circonstances reprocher au magistrat instructeur d'avoir fait preuve de prudence avant de prononcer des inculpations. Les personnes entendues ont clairement été informées de leur droit de refuser de déposer; l'une d'entre elles a pu, sur sa demande, être assistée d'un avocat. Le recourant, qui a eu par la suite accès au dossier, ne soutient d'ailleurs pas qu'il aurait subi un préjudice en raison de l'absence d'inculpation. Il ne prétend pas, en particulier, que certaines déclarations n'auraient pas été faites s'il avait été immédiatement informé des soupçons portés contre lui. Il n'y a par conséquent pas de raison de voir dans la procédure suivie par le juge d'instruction un procédé déloyal pouvant conduire à une récusation.
3. A titre "complémentaire", le recourant invoque son droit d'être entendu. Il reproche à l'autorité intimée de ne pas avoir fait produire la cassette vidéo d'un enregistrement du Juge d'instruction, de ne pas avoir motivé son opinion sur la portée des déclarations du juge et de ne pas avoir pris position sur l'exactitude des déclarations reproduites dans la presse. L'argumentation est cependant dépourvue de toute motivation: le recourant n'indique pas (alors que cette démonstration lui incombe) en quoi les moyens de preuve et les arguments soumis à l'autorité intimée seraient déterminants, ou tout au moins pertinents dans le cadre de la procédure de récusation. Le grief apparaît dès lors irrecevable au regard de l'art. 106 al. 2 LTF.
Il serait d'ailleurs manifestement mal fondé, car la décision attaquée satisfait aux exigences de motivation découlant du droit d'être entendu: elle reprend dans le détail les termes du communiqué de presse du 27 août 2007, y compris l'allusion à une prochaine ordonnance de condamnation; l'autorité intimée est arrivée à la conclusion que les informations fournies étaient "indispensables à une bonne compréhension de l'affaire", appréciation suffisante au regard de l'obligation de motiver puisque le recourant a été en mesure d'en contester le bien-fondé. L'autorité intimée s'est également exprimée sur le caractère prématuré de ce communiqué en indiquant les raisons de sa date de diffusion. S'agissant des autres informations révélées par le Juge d'instruction, l'autorité intimée a estimé que celui-ci avait répondu aux questions complémentaires qui lui étaient posées, qu'il avait rappelé et respecté le principe de la présomption d'innocence, qu'il ne pouvait être tenu pour responsable des informations fausses et des reproductions inexactes de ses déclarations, et qu'enfin les prévenus n'avaient pas souhaité un rectificatif alors que la possibilité leur en avait été offerte. Ces considérations permettent de comprendre les raisons ayant conduit au prononcé litigieux, et que le recourant a pu contester en connaissance de cause.
4. Il s'ensuit que le recours doit être rejeté, dans la mesure où il est recevable. Conformément à l'art. 66 al. 1 LTF, les frais judiciaires sont mis à la charge du recourant. Il n'est pas alloué de dépens (art. 68 al. 3 LTF).
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté, dans la mesure où il est recevable.
2. Les frais judiciaires, arrêtés à 2000 fr., sont mis à la charge du recourant.
3. Le présent arrêt est communiqué aux parties, au Ministère public et au Président de l'Office des juges d'instruction de l'Etat de Fribourg.
Lausanne, le 11 avril 2008
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président: Le Greffier:
Féraud Kurz