Faits: A. R._ a travaillé comme ouvrier pour le compte de l'agence X._ SA dans le cadre de missions temporaires, entre lesquelles il a bénéficié de prestations de chômage. Invoquant souffrir de dépression chronique, il a présenté une demande de prestations de l'assurance-invalidité le 27 octobre 2004. L'Office de l'assurance-invalidité du canton de Fribourg (ci-après: office AI) a notamment confié une expertise pluridisciplinaire au Centre d'expertise médicale (ci-après: CEMed), où les docteurs B._, rhumatologue, et O._, psychiatre et psychothérapeute, ont conclu à une capacité de travail entière dans une activité adaptée (ne nécessitant pas de mouvements de flexion ou d'extension du rachis, sans port de charges de plus de 10 kg, ni position debout prolongée; rapport du 30 novembre 2006). Fort de ces conclusions, l'office AI a nié le droit à une rente d'invalidité, motif pris de l'absence de perte de gain (décision du 22 novembre 2007). B. R._ a déféré cette décision à la Cour des assurances sociales du Tribunal administratif du canton de Fribourg (aujourd'hui, Cour des assurances sociales du Tribunal cantonal), en produisant des rapports médicaux de ses médecins traitants (les docteurs M._, généraliste, H._, neurologue, et E._, gastroentérologue). Statuant le 29 janvier 2010, le Tribunal cantonal a rejeté le recours. C. Agissant par la voie du recours en matière de droit public, R._ conclut, sous suite de frais et dépens, à l'annulation du jugement cantonal et de la décision administrative du 22 novembre 2007, ainsi qu'à l'octroi d'une rente entière d'invalidité. A titre subsidiaire, il demande le renvoi du dossier à l'office AI pour instruction complémentaire et nouvelle décision. L'office AI conclut implicitement au rejet du recours en se référant aux considérants du jugement cantonal, tandis que l'Office fédéral des assurances sociales a renoncé à se déterminer.