Faits:
A. En 2006, X._, qui construisait des villas sur un fonds dont il était propriétaire, a adjugé les travaux de menuiseries extérieures à A._ Sàrl, pour un montant de 107'773 fr. 75 toutes taxes comprises, ainsi que d'autres travaux, notamment la réalisation de jardins d'hiver.
Le 27 décembre 2006, X._ a versé, à la demande de A._ Sàrl, la somme de 34'789 fr. 35 à Y._ AG, auprès de laquelle celle-ci se fournissait, à titre d'acompte sur les travaux adjugés.
Le 12 janvier 2007, Y._ AG a reçu de A._ Sàrl la commande des menuiseries nécessaires à la réalisation des travaux confiés par X._. Le 16 janvier 2007, Y._ AG a confirmé à A._ Sàrl sa commande portant principalement sur la fabrication et la livraison de septante-quatre fenêtres/portes-fenêtres de différentes dimensions, quatre fenêtres triangulaires et deux fenêtres rondes, pour un total de 61'521 fr. 83 toutes taxes comprises.
A._ Sàrl s'est trouvée en difficultés financières, ne s'acquittant plus envers Y._ AG de diverses factures liées à d'autres chantiers que celui de X._. Au 13 février 2007, Y._ AG lui réclamait le paiement de 57'777 fr. 95, faute de quoi les commandes en cours ne pourraient pas être livrées; ce montant concernait divers chantiers à l'exclusion de celui de X._; à l'égard de celui-ci, Y._ AG indiquait que la commande de janvier 2007 ne pourrait être effectuée qu'après définition des modalités de paiement entre toutes les parties.
Le 15 février 2007, les intéressés ont signé un document dans lequel A._ Sàrl priait X._ de procéder au versement de la somme de 104'000 fr. directement à Y._ AG qui était chargée de fournir les fenêtres pour son chantier; il était précisé que la somme de 104'000 fr. représentait le montant total des menuiseries extérieures adjugées par X._ à A._ Sàrl déduction faite d'une retenue de garantie de 10 %; ce montant comprenait la pose; A._ Sàrl prenait bonne note que X._ avait déjà versé à Y._ AG un montant de 34'789 fr. 35 qui était d'ores et déjà à déduire du montant de 104'000 fr.; X._ était prié de payer le solde sur présentation des situations qui lui seraient montrées en fonction de l'avancement des travaux.
Dès le 20 février 2007, X._ a plusieurs fois mis A._ Sàrl en demeure d'exécuter différents travaux; celle-ci n'y ayant pas donné suite, celui-là a dû mandater des tiers, qui lui ont ultérieurement adressé des factures.
Le 8 mars 2007, Y._ AG a adressé à A._ Sàrl une facture pour un montant de 61'521 fr. 80 correspondant à la fabrication et à la livraison de quatre-vingt fenêtres destinées au chantier de X._, y compris huit fenêtres mal dimensionnées.
Le 24 mai 2007, une banque a émis une garantie de 88'000 fr. à titre de sûretés.
Le 15 juin 2007, Y._ AG, se fondant sur "la cession de créance du 15 février 2007", a fait notifier à X._ un commandement de payer pour un montant de 69'210 fr. 65 avec intérêt à 5 % dès le 15 février 2007; le poursuivi y a fait opposition.
Le 18 juin 2007, Y._ AG a produit sa créance dans la faillite de A._ Sàrl - qui avait été prononcée le 19 février 2007 - pour un montant de 103'425 fr. 75, représentant l'intégralité des factures demeurées impayées, dont celle liée au chantier de X._ qui s'élevait à 61'521 fr. 87; elle n'a perçu aucun dividende.
B. Le 11 juillet 2007, Y._ AG a assigné X._ devant le Tribunal de première instance du canton de Genève; elle concluait principalement à ce que celui-ci prononce que son adverse partie lui doit immédiat paiement de 69'210 fr. 65 avec intérêt à 5 % dès le 15 février 2007 et prononce la mainlevée à due concurrence; elle sollicitait subsidiairement que le Tribunal constate qu'elle détenait une créance de 63'743 fr. 85 avec intérêt à 5 % dès le 15 février 2007 découlant de la livraison de fenêtres réalisées sur son chantier et qu'elle était en droit de faire appel à la garantie bancaire de 88'000 fr. X._ s'est opposé à la demande, en faisant notamment valoir son dommage résultant de l'inexécution ou de l'exécution défectueuse de différents éléments par A._ Sàrl.
Par jugement du 19 mars 2009, le Tribunal a notamment condamné X._ à payer à Y._ AG 19'319 fr. 65 avec intérêt à 5 % dès le 1er avril 2007 (ch. 2), prononcé la mainlevée définitive à due concurrence (ch. 3) et ordonné de surcroît la libération de la garantie bancaire à hauteur de 24'065 fr. 65 plus intérêt à 5 % dès le 7 avril 2007 en faveur de Y._ AG (ch. 4).
Par arrêt du 26 novembre 2009, la Chambre civile de la Cour de justice du canton de Genève a en particulier annulé les chiffres 2 à 4 du jugement du 19 mars 2009 et, statuant à nouveau sur les chiffres 2 et 4, condamné X._ à verser à Y._ AG la somme de 58'855 fr. avec intérêt à 5 % dès le 7 avril 2007 et ordonné la libération en faveur de celle-ci de la garantie bancaire à hauteur de 58'855 fr. plus intérêt à 5 % dès le 7 avril 2007.
En substance, elle a considéré d'une part que Y._ AG avait droit au paiement, par X._, d'un montant de 58'855 fr. pour la fabrication de septante-deux fenêtres livrées à celui-ci; d'autre part, en vertu de l'accord du 15 février 2007, qui constituait une stipulation pour autrui, A._ Sàrl, qui avait des dettes envers Y._ AG, avait demandé à X._ de payer la somme de 104'000 fr. correspondant aux travaux qu'il lui avait commandés directement en mains de Y._ AG, au fur et à mesure et sur présentation des situations; préalablement, X._ avait déjà versé, toujours à la demande de A._ Sàrl, la somme de 34'789 fr. 35 à Y._ AG; cela étant, X._ n'avait pas établi avoir convenu que ce dernier montant était directement payé pour garantir la livraison des fenêtres sur son chantier; en l'absence d'accord sur l'affectation de la somme en question, son paiement devait être imputé sur les dettes antérieures de A._ Sàrl envers Y._ AG, et non pas déduits des 58'855 fr. dus à celle-ci; pour le surplus, des différentes créances en dommages et intérêts liées à de prétendues carences de A._ Sàrl que X._ invoquait pour faire échec aux prétentions de Y._ AG, seule devait être retenue celle correspondant à la facture d'une société ayant dû procéder au déplacement des huit fenêtres défectueuses encombrant le chantier, d'un montant de 862 fr. 85.
C. X._ (le recourant) a interjeté un recours en matière civile au Tribunal fédéral, concluant à l'annulation de l'arrêt du 26 novembre 2009 et au déboutement de son adverse partie de toutes ses conclusions, avec suite de dépens; en bref, il soutient que des 58'855 fr. qu'il a été condamné à payer à Y._ AG, il y aurait lieu de déduire d'une part l'acompte de 34'789 fr. 35 susmentionné, d'autre part une somme de 24'062 fr. 75 en réparation du dommage subi en raison de prétendus manquements de A._ Sàrl; il a également requis l'effet suspensif, qui a été accordé à titre superprovisoire le 16 décembre 2009. Y._ AG (l'intimée) a proposé le rejet tant du recours que de la requête d'effet suspensif, sous suite de dépens.
Considérant en droit:
1. Interjeté par le recourant qui a partiellement succombé dans ses conclusions libératoires (art. 76 al. 1 LTF) et dirigé contre une décision finale (art. 90 LTF) rendue en matière civile (art. 72 al. 1 LTF) par une autorité cantonale de dernière instance (art. 75 al. 1 LTF) dans une affaire dont la valeur litigieuse dépasse le seuil de 30'000 fr. (art. 74 al. 1 let. b LTF), le recours en matière civile présentement soumis à l'examen du Tribunal fédéral est en principe recevable, puisqu'il a été déposé dans le délai (art. 100 al. 1 LTF) et la forme (art. 42 LTF) prévus par la loi.
2. Le recours en matière civile peut être formé pour violation du droit fédéral (art. 95 let. a LTF), y compris le droit constitutionnel (ATF 134 III 379 consid. 1.2 p. 382). Saisi d'un tel recours, le Tribunal fédéral applique le droit d'office (art. 106 al. 1 LTF) sur la base des faits établis par l'autorité précédente (art. 105 al. 1 LTF), dont il ne peut s'écarter que s'ils l'ont été de façon manifestement inexacte - notion qui correspond à celle d'arbitraire au sens de l'art. 9 Cst. (ATF 135 II 145 consid. 8.1) - ou en violation du droit au sens de l'art. 95 LTF (art. 105 al. 2 LTF), et pour autant que la correction du vice soit susceptible d'influer sur le sort de la cause (art. 97 al. 1 LTF). La partie recourante qui entend contester les constatations de l'autorité précédente doit expliquer de manière circonstanciée en quoi les conditions de l'exception prévue par l'art. 105 al. 2 LTF sont réalisées, faute de quoi il n'est pas possible de tenir compte d'un état de fait qui diverge de celui contenu dans la décision attaquée (ATF 133 III 462 consid. 2.4 p. 466 s.). Aucun fait nouveau ni preuve nouvelle ne peut être présenté à moins de résulter de la décision de l'autorité précédente (art. 99 al. 1 LTF).
3. Le recourant reproche à la cour cantonale d'avoir constaté les faits de manière manifestement inexacte (art. 97 LTF), c'est-à-dire de façon arbitraire au sens de l'art. 9 Cst.
3.1 Selon la jurisprudence, une décision est arbitraire, au sens de l'art. 9 Cst., lorsqu'elle est manifestement insoutenable, méconnaît gravement une norme ou un principe juridique clair et indiscuté, ou heurte de manière choquante le sentiment de la justice et de l'équité; il ne suffit pas qu'une autre solution paraisse concevable, voire préférable; pour que cette décision soit annulée, encore faut-il qu'elle se révèle arbitraire, non seulement dans ses motifs, mais aussi dans son résultat, ce qu'il appartient à la partie recourante de démontrer en vertu de l'art. 106 al. 2 LTF (ATF 135 V 2 consid. 1.3 p. 4 s.; 134 I 263 consid. 3.1 p. 265 s.).
Dans la mesure où l'arbitraire est invoqué en relation avec l'établissement des faits, il convient de rappeler que le juge dispose d'un large pouvoir lorsqu'il apprécie les preuves (ATF 120 Ia 31 consid. 4b). La partie recourante doit ainsi expliquer dans quelle mesure le juge a abusé de son pouvoir d'appréciation et, plus particulièrement, montrer qu'il a omis, sans aucune raison sérieuse, de prendre en compte un élément de preuve propre à modifier la décision attaquée, qu'il s'est manifestement trompé sur son sens et sa portée ou encore que, en se fondant sur les éléments recueillis, il en a tiré des constatations insoutenables (ATF 134 V 53 consid. 4.3; 129 I 8 consid. 2.1).
3.2 En premier lieu, le recourant plaide que les juges cantonaux auraient constaté de manière manifestement insoutenable qu'aucun élément du dossier ne permettait de retenir une volonté de A._ Sàrl d'affecter l'acompte de 34'789 fr. 35 à son chantier.
Sur ce point, la cour cantonale a en particulier relevé que l'acompte en question avait été versé avant même que A._ Sàrl adresse à l'intimée la commande de menuiserie nécessaire au chantier du recourant; l'intimée avait, par la suite, indiqué qu'elle ne donnerait suite à cette commande que pour autant que "des modalités de paiement entre toutes les parties" soient définies, ce qui laissait fortement supposer que le coût des menuiseries commandées n'étaient pas garanti par l'acompte de 34'789 fr. 35; cet élément était, en outre, confirmé par le fait que le montant de 104'000 fr., objet de la stipulation pour autrui du 15 février 2007, correspondait approximativement à celui produit par l'intimée dans la faillite de A._ Sàrl, lequel comprenait la facture de 61'521 fr. 80 du 8 mars 2007.
Cela étant, le recourant ne fait que présenter une argumentation à caractère appellatoire dans laquelle il tente de faire prévaloir sa propre version des choses sur celle des juges cantonaux, qu'il se limite à qualifier d'"insoutenable", sans démontrer en quoi ceux-ci auraient commis arbitraire dans l'appréciation des preuves et l'établissement des faits; ce procédé n'est pas admissible.
3.3 Le recourant soutient ensuite que la cour cantonale aurait apprécié les faits de manière erronée en refusant de compenser les prétentions de l'intimée avec le dommage qu'il aurait subi, et ce à trois égards.
En l'occurrence, les précédents juges ont estimé, concernant les jardins d'hiver, que même s'il était avéré que l'entreprise tierce avait disposé, pour former son offre, des documents remis en son temps par le recourant à A._ Sàrl et des devis établis par celle-ci, cet élément, de même que les déclarations imprécises du directeur de l'entreprise en question, ne permettraient pas encore de considérer que les jardins d'hiver réalisés par l'entreprise tierce étaient identiques à ceux proposés par A._ Sàrl sous l'angle des dimensions, de la qualité des menuiseries et du verre; dans son écriture, le recourant se limite à réaffirmer sa position, sans discuter l'argumentation de la cour cantonale relative à l'absence de preuve de l'identité entre les travaux initialement commandés et ceux réalisés par l'entreprise qui s'est substituée à A._ Sàrl; il ne démontre ainsi nullement l'arbitraire.
Les juges cantonaux ont en outre considéré, en rapport avec une facture liée à la construction de garde-corps en verre pour deux fenêtres livrées par A._ Sàrl, que si les plans prévoyaient certes une ouverture limitée à la partie supérieure des fenêtres, cela ne signifiait pas encore que cet élément ait été convenu dans le contrat ayant lié le recourant à A._ Sàrl; en outre, lors de la livraison, le recourant n'avait fait aucune remarque concernant les fenêtres en question, alors que le défaut allégué était évident; sur ce point, le recourant se borne en bref à insister sur l'importance des plans produits, sans démontrer en quoi la cour cantonale aurait commis arbitraire en considérant qu'en l'absence de preuve que le contrat passé avec A._ Sàrl prévoyait la livraison de fenêtres telles que celles qui ont finalement dû être commandées à une société tierce, ses prétentions devaient être écartées.
La cour cantonale a enfin retenu, en rapport avec la livraison, par un fournisseur tiers, des huit fenêtres manquantes, que ni la facture de la société en question, ni le témoignage du directeur de celle-ci ou de son collaborateur ne permettaient de retenir que les fenêtres finalement posées étaient les mêmes que celles proposées par le devis de A._ Sàrl; elle a précisé que le Tribunal avait d'ailleurs soulevé cette problématique, en mentionnant qu'il aurait été opportun de produire le devis portant sur les menuiseries extérieures dont le fournisseur tiers s'était chargé, ce que le recourant n'avait pas fait; dans son écriture au Tribunal fédéral, celui-ci affirme pour l'essentiel que les témoignages auraient dû conduire à la conclusion inverse de celle à laquelle sont parvenus les juges cantonaux et que les fenêtres en question devant être placées dans les ouvertures correspondantes pratiquées dans la façade, il tombait sous le sens qu'il y avait lieu de remplacer les fenêtres manquantes - construites de manière erronée, en raison de fausses dimensions - par des éléments de conception et de format absolument identiques, mais aux bonnes dimensions; de la sorte, il ne démontre en rien l'arbitraire dans l'appréciation des déclarations des témoins et se focalise pour le surplus en vain sur la question des dimensions des différentes fenêtres, le défaut de preuve de l'identité ne se limitant pas à la question des dimensions, mais comprenant par exemple également celle de la qualité.
4. Le recourant se plaint en outre d'une violation des art. 86, 87 (imputation d'un paiement s'il y a plusieurs dettes) et 112 (stipulation pour autrui) CO en relation avec la décision des juges cantonaux de ne pas imputer l'acompte de 34'789 fr. 35 fr. sur sa créance, "en contradiction choquante avec les faits établis".
Or, la cour cantonale a retenu en fait que le recourant n'avait pas établi avoir convenu que ce montant était directement payé pour garantir la livraison des fenêtres sur son chantier et qu'aucun élément du dossier ne permettait de retenir une volonté de A._ Sàrl d'affecter cette somme audit chantier. Faute de déclaration du débiteur ou du créancier, l'art. 86 CO ne trouvait pas application et il y a avait lieu de se référer à l'ordre légal d'imputation, conformément à l'art. 87 CO. L'on ne voit pas que les juges cantonaux aient à cet égard violé le droit fédéral.
Pour le surplus, le recourant soutient que si l'on suivait le raisonnement de la cour cantonale, l'extinction partielle ou totale de la dette du débiteur serait impossible, dès lors qu'en versant l'acompte de 34'789 fr. 35, il avait réglé une partie des dettes de A._ Sàrl, sans toutefois éteindre sa propre dette envers cette dernière, ce qui violerait de manière évidente les règles de la stipulation pour autrui et la finalité de ce mode particulier d'exécution des obligations.
Cet argument ne résiste pas à l'examen; en effet, en signant la stipulation pour autrui du 15 février 2007, le recourant s'est précisément engagé à payer la somme de 104'000 fr., correspondant à ce qu'il devait à A._ Sàrl sur la base de l'adjudication, en mains de l'intimée, dans le but d'éteindre les dettes de A._ Sàrl, et non les siennes propres, envers l'intimée; à défaut de déclaration du débiteur ou du créancier, l'acompte de 34'789 fr. 35 ne pouvait ainsi pas être déduit de la somme de 58'855 fr. due par le recourant à l'intimée; en tout état, la somme de l'acompte litigieux et du montant alloué à l'intimée ne dépasse pas 104'000 francs.
5. Il résulte des considérants qui précèdent que le recours doit être rejeté dans la mesure de sa recevabilité.
6. La présente décision sur le fond prive d'objet la requête d'effet suspensif du recourant.
7. Compte tenu de l'issue du litige, les frais judiciaires et dépens de l'intimée - fixés en considération de la brièveté de sa réponse - sont mis à la charge du recourant, qui succombe (art. 66 al. 1 ainsi qu'art. 68 al. 1 et 2 LTF; art. 4 et 8 al. 2 du règlement du 31 mars 2006 sur les dépens alloués à la partie adverse et sur l'indemnité pour la représentation d'office dans les causes portées devant le Tribunal fédéral [RS 173.110.210.3]).
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté dans la mesure où il est recevable.
2. Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge du recourant.
3. Une indemnité de 2'000 fr., à payer à l'intimée à titre de dépens, est mise à la charge du recourant.
4. Le présent arrêt est communiqué aux mandataires des parties et à la Chambre civile de la Cour de justice du canton de Genève.
Lausanne, le 10 février 2010
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: La Greffière:
Klett Cornaz