Faits:
A. R._, né en 1950, a travaillé successivement en qualité de chef de vente d'une entreprise jusqu'en mai 2002, pour le compte d'une société d'entreprise générale jusqu'en novembre 2004, puis en tant que courtier immobilier. Le 20 octobre 2003, il s'est annoncé à l'assurance-invalidité.
Dans un rapport d'expertise pluridisciplinaire du 28 septembre 2004, les docteurs D._, Z._ et C._, médecins à l'hôpital X._, ont diagnostiqué un trouble dépressif récurrent, en rémission, un trouble somatoforme, ainsi qu'un syndrome d'apnées du sommeil, en précisant que ces affections ont une influence essentielle sur la capacité de travail. Dans leur appréciation du cas, les experts ont attesté une incapacité de travail totale de septembre 2002 à mi-janvier 2003, une capacité de 50 % dès le début de l'année 2003, puis une capacité de travail de 70 % dans l'ancienne activité d'entrepreneur général à compter de l'expertise (août 2004), en précisant que cette dernière activité est adaptée à son état de santé.
Par décision du 13 octobre 2005, confirmée sur opposition le 27 juillet 2006, l'Office de l'assurance-invalidité du canton de Fribourg a mis l'assuré au bénéfice d'une demi-rente d'invalidité pour la période s'étendant du 1er septembre 2003 au 31 juillet 2004.
B. R._ a déféré cette décision au Tribunal administratif du canton de Fribourg, en concluant au maintien de la demi-rente au-delà du 31 juillet 2004.
La juridiction cantonale a rejeté le recours par jugement du 29 novembre 2007. Elle a mis les frais de la procédure à la charge du recourant, par 800 fr.
C. R._ interjette un recours en matière de droit public contre ce jugement dont il demande implicitement l'annulation, en reprenant les conclusions formées en première instance.
L'intimé et l'Office fédéral des assurances sociales n'ont pas été invités à se déterminer.
Considérant en droit:
1. Le litige porte sur le droit du recourant au versement d'une demi-rente d'invalidité au-delà du 31 juillet 2004.
2. 2.1 Le Tribunal administratif a exposé correctement les règles relatives à l'évaluation de l'invalidité du recourant, si bien qu'il suffit de renvoyer au considérant y relatif du jugement attaqué.
2.2 Le recourant soutient que le taux de l'incapacité de travail de 30 %, retenu par les premiers juges à la suite des experts de l'hôpital X._ le reconnaissant apte à travailler à 70 %, est irréaliste. Il se prévaut également de sa situation personnelle difficile.
2.3 Le recourant n'allègue pas cependant et ne démontre pas non plus que la juridiction cantonale aurait constaté les faits de façon manifestement inexacte ou en violation du droit (cf. art. 97 al. 1 LTF). Les constatations ainsi que l'appréciation de l'autorité de recours de première instance relatives à l'évolution de l'état de santé de l'assuré et de sa capacité de travail relèvent d'une question de fait (art. 105 al. 1 LTF; arrêt I 692/06 du 19 décembre 2006 consid. 3.1) et rien ne permet d'admettre, faute d'argumentaire pertinent, qu'elles auraient été établies de façon manifestement inexacte (art. 105 al. 2 LTF). Le Tribunal fédéral est donc lié par celles-ci.
2.4 Quant à la suppression de la demi-rente, par voie de révision, le recourant n'indique pas non plus en quoi elle violerait le droit fédéral et les art. 28 LAI et 17 LPGA en particulier. Sur cette question de droit, ainsi que celle de la perception de frais de procédure en instance cantonale, la Cour de céans n'a aucune raison de s'écarter des solutions retenues dans le jugement attaqué, qui peuvent se baser d'une part sur l'art. 88a al. 1 première phase RAI, d'autre part sur l'art. 69 al. 1bis LAI entré en vigueur au 1er juillet 2006, d'autant moins que la motivation du recours se situe à la limite de la recevabilité (art. 42 al. 2 LTF).
3. Le recourant, qui succombe, supportera les frais de justice (art. 66 al. 1 LTF).
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge du recourant.
3. Le présent arrêt est communiqué aux parties, à la Cour des assurances sociales du Tribunal administratif du canton de Fribourg, à la Caisse de compensation des patrons bernois et à l'Office fédéral des assurances sociales.
Lucerne, le 19 janvier 2009
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président: Le Greffier:
Meyer Berthoud