Sachverhalt: A. Nach Ablehnung eines ersten Leistungsgesuchs sprach die IV-Stelle des Kantons Thurgau mit Verfügung vom 27. Juni 2003 dem 1953 geborenen L._ für die Zeit vom 1. Dezember 2001 bis 30. April 2003 eine halbe Härtefallrente und ab 1. Mai 2003 eine Viertelsrente der Invalidenversicherung zu. Auf Einsprache hin hob die IV-Stelle die Verfügung auf und nahm weitere Abklärungen vor. U.a. liess sie den Versicherten (erneut) rheumatologisch und psychiatrisch begutachten. Mit Verfügung vom 5. Mai 2006 sprach die IV-Stelle L._ ab 1. Dezember 2001 eine Viertelsrente zu, wogegen dieser wiederum Einsprache erheben liess. Am 22. Oktober 2007 wurde der Versicherte im ärztlichen Begutachtungszentrum X._ interdisziplinär abgeklärt. Nachdem die IV-Stelle auf eine mögliche Schlechterstellung aufmerksam gemacht und Gelegenheit zum Rückzug der Einsprache gegeben hatte, reichte der Versicherte medizinische Unterlagen ein, wozu der regionale ärztliche Dienst Stellung nahm. Mit Einspracheentscheid vom 19. Dezember 2008 sprach die IV-Stelle L._ für die Zeit vom 1. Juni bis 31. Oktober 2007 eine ganze Invalidenrente zu. B. Die Beschwerde des L._ mit dem Antrag auf Zusprechung einer ganzen Invalidenrente ab 1. Dezember 2001 samt Kinderrenten und einer temporären Zusatzrente für die Ehefrau wies das Verwaltungsgericht des Kantons Thurgau als Versicherungsgericht nach Durchführung einer mündlichen öffentlichen Verhandlung mit Entscheid vom 29. April 2009 ab. C. L._ lässt Beschwerde in öffentlich-rechtlichen Angelegenheiten führen mit dem Rechtsbegehren, der Entscheid vom 29. April 2009 sei aufzuheben und ihm die gesetzlichen Leistungen, insbesondere eine ganze Invalidenrente ab 1. Dezember 2001 samt Kinderrenten und einer temporären Zusatzrente für die Ehefrau, auszurichten, unter Gewährung der unentgeltlichen Rechtspflege. Die IV-Stelle beantragt die Abweisung der Beschwerde. Das kantonale Gericht äussert sich zur Sache, ohne einen Antrag zu stellen. Das Bundesamt für Sozialversicherungen verzichtet auf eine Vernehmlassung.