Sachverhalt: A. Der 1954 geborene R._ meldete sich im Mai 2002 bei der Invalidenversicherung an und beantragte u.a. eine Rente. Nach Abklärungen verneinte die IV-Stelle des Kantons Zürich mit Verfügung vom 3. September 2004 den Anspruch auf eine Rente, was sie mit Einspracheentscheid vom 29. März 2005 bestätigte. Diesen Verwaltungsakt hob das Sozialversicherungsgericht des Kantons Zürich mit Entscheid vom 27. Oktober 2005 auf und wies die Sache zu weiterer Abklärung und neuer Verfügung im Sinne der Erwägungen an die IV-Stelle zurück. In der Folge wurde R._ durch Dr. med. S._, Facharzt für Orthopädische Chirurgie FMH/FMS, untersucht und begutachtet. Nach Durchführung des Vorbescheidverfahrens verneinte die IV-Stelle mit Verfügung vom 22. Dezember 2006 erneut einen Rentenanspruch. B. Die Beschwerde des R._ wies das Sozialversicherungsgericht des Kantons Zürich nach zweifachem Schriftenwechsel mit Entscheid vom 15. Dezember 2008 ab. C. R._ lässt Beschwerde in öffentlich-rechtlichen Angelegenheiten führen mit dem Rechtsbegehren, der Entscheid vom 15. Dezember 2008 sei aufzuheben und ihm mit Wirkung ab 31. Mai 2001 eine halbe Rente zuzusprechen, zuzüglich 5 % Zins ab 1. Juni 2003; eventualiter sei die Sache zur Neubeurteilung an die Vorinstanz zurückzuweisen. Die IV-Stelle beantragt die Abweisung der Beschwerde. Kantonales Gericht und Bundesamt für Sozialversicherungen verzichten auf eine Vernehmlassung. 