Faits:
A. A._ a travaillé en qualité de jardinier-paysagiste indépendant. En 2001, il a été victime d'un accident qui a entraîné une limitation fonctionnelle importante de l'épaule droite (déchirure de la coiffe des rotateurs), avec récidive en 2002.
Le 14 mai 2003, l'assuré s'est annoncé à l'assurance-invalidité en indiquant qu'il souhaitait poursuivre son activité indépendante à 50 %. Dans un rapport du 12 décembre 2005, la doctoresse M._, spécialiste en médecine physique et rééducation, a attesté que l'incapacité de travail était totale dans la profession de jardinier-paysagiste; en revanche, dans une activité adaptée aux limitations fonctionnelles ainsi que dans un travail administratif, la capacité de travail était entière.
Par décision du 20 avril 2006, confirmée sur opposition le 26 septembre 2007, l'Office cantonal de l'assurance-invalidité du canton de Genève a rejeté la demande de prestations. En bref, l'office AI a retenu que l'assuré pourrait exercer une activité lucrative salariée adaptée à son état de santé, sans subir de perte de gain significative.
B. A._ a déféré cette décision au Tribunal des assurances sociales du canton de Genève, en concluant à l'octroi d'une demi-rente d'invalidité.
Le tribunal cantonal a recueilli l'avis du docteur U._, spécialiste en chirurgie orthopédique et médecin traitant de l'assuré. Dans un rapport du 18 février 2008, ce médecin a confirmé le principe de l'exigibilité théorique de la reprise du travail à 100 % dans une activité adaptée, mais en précisant qu'elle serait aléatoire en pratique. A son avis, d'un point de vue pragmatique, une incapacité de travail de 50 % était justifiée.
Par jugement du 21 avril 2008, la juridiction cantonale a rejeté le recours.
C. A._ interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation, avec suite de dépens, en concluant principalement au versement d'une demi-rente d'invalidité, subsidiairement à la mise en oeuvre d'une expertise complémentaire.
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 à une rente d'invalidité, singulièrement sur le taux de l'invalidité.
Les premiers juges ont exposé correctement les règles applicables à la solution du litige, si bien qu'il suffit de renvoyer au jugement attaqué.
2. 2.1 En premier lieu, le recourant reproche à la juridiction cantonale de recours de s'être arbitrairement écartée de l'avis du docteur U._, d'autant que ce médecin ne s'était à aucun moment départi de son avis selon lequel « son patient souffre d'une invalidité définitive de 50 % ». Il ajoute que le tribunal cantonal aurait dû, en cas de doute, ordonner une nouvelle expertise médicale.
2.2 Du mémoire de recours, on peut déduire que le recourant se prévaut implicitement d'une violation du droit fédéral, consistant en une mauvaise appréciation des preuves, voire d'une constatation inexacte des faits.
Si l'on admet que la motivation du recours satisfait aux réquisits légaux (<ref-law>, première phrase), les griefs soulevés ne sont toutefois pas propres à remettre en cause la pertinence des faits que les premiers juges ont constaté, en particulier l'étendue de la capacité de travail du recourant dans une activité adaptée à son handicap. En effet, les critiques que l'intéressé adresse à l'encontre du jugement attaqué sur ce point de fait sont de nature appellatoire et donc insuffisantes dans le cadre du pouvoir d'examen restreint prévu par la loi (<ref-law>; <ref-ruling> consid. 3.2 p. 397 ss). De plus, comme le recourant n'expose pas en quoi les faits qu'il met en exergue auraient été établis de façon manifestement inexacte ou en violation du droit (<ref-law>), dès lors qu'il oppose en définitive uniquement sa propre appréciation de la situation à celle du tribunal cantonal, il n'y a pas lieu de s'attarder sur ce grief et d'ordonner le complément d'instruction qu'il requiert.
3. 3.1 En second lieu, le recourant conteste la prise en compte d'un revenu annuel sans invalidité de 46'621 fr. en 2003 lors de la comparaison des revenus (consid. 9 du jugement attaqué). A son avis, ce montant intégrerait à tort les prestations d'un assureur-accidents, alors que lui-même n'a réalisé quasiment aucun revenu en 2002 et 2003.
3.2 A l'examen de ce grief, on peut se demander si le recourant ne remet pas plutôt en question le bien-fondé du revenu d'invalide, que l'intimé a fixé à 46'196 fr. sur la base des statistiques salariales (rapport de réadaptation professionnelle du 19 avril 2006). Quoi qu'il en soit, il serait contraire à la lettre et à l'esprit de l'<ref-law> d'arrêter le revenu d'invalide seulement en fonction des gains qu'un assuré a réalisés, car la loi requiert de tenir compte du revenu que l'assuré pourrait obtenir en exerçant une activité raisonnablement exigible. Or sur ce point, le recourant ne démontre pas non plus que la prise en compte d'un gain de 46'196 fr. résulterait d'une violation du droit fédéral.
Quant au revenu sans invalidité, second élément de la comparaison, il aurait dû être largement supérieur à 46'621 fr. en 2003 (ce que l'intéressé conteste) pour qu'on puisse se trouver en présence d'une perte de gain (de 40 %) ouvrant droit à la rente.
4. Il s'ensuit que le recours est mal fondé.
5. Le recourant, qui succombe, supportera les frais judiciaires (<ref-law>).

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, au Tribunal cantonal des assurances sociales de la République et canton de Genève et à l'Office fédéral des assurances sociales.
Lucerne, le 4 mars 2009
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président: Le Greffier:
Meyer Berthoud