Faits :
A.
A._, né en 1968, a travaillé en tant que monteur-électricien pour le compte de B._ SA à partir du 16 mai 2008. Après avoir été en incapacité de travail à des taux divers depuis le 15 novembre 2012, il a déposé une demande de prestations de l'assurance-invalidité en juin 2014; il y indiquait souffrir de douleurs au dos, aux hanches et aux genoux. L'assuré a été licencié pour la fin du mois de novembre 2014.
Entre autres mesures d'instruction, l'Office de l'assurance-invalidité du canton de Fribourg (ci-après: l'office AI) a fait bénéficier A._ d'un stage d'évaluation professionnelle auprès du Centre D._ du 19 mai au 16 août 2015 (rapport du 17 août 2015). Il a également soumis l'assuré à une expertise rhumatologique auprès du docteur C._, spécialiste en médecine interne générale et en rhumatologie, qui a conclu à une capacité de travail nulle dans l'activité habituelle à compter de juin 2014, mais de 70 % dans une activité adaptée aux limitations fonctionnelles, sans diminution de rendement supplémentaire, depuis novembre 2012 (rapport du 7 juillet 2016). Par décision du 5 septembre 2017, l'office AI a rejeté la demande de prestations (taux d'invalidité de 37 %).
B.
Statuant le 14 novembre 2018 sur le recours formé par A._ contre la décision du 5 septembre 2017, le Tribunal cantonal du canton de Fribourg, IIe Cour des assurances sociales, l'a partiellement admis. Il a réformé la décision entreprise en ce sens qu'un droit à un quart de rente d'invalidité est reconnu à l'assuré à compter du 1 er décembre 2014.
C.
Agissant par la voie du recours en matière de droit public, l'office AI demande au Tribunal fédéral d'annuler le jugement cantonal et de confirmer la décision qu'il a rendue le 5 septembre 2017.
L'intimé conclut au rejet du recours et sollicite par ailleurs le bénéfice de l'assistance judiciaire. L'Office fédéral des assurances sociales a renoncé à se déterminer.

Considérant en droit :
1.
Le recours en matière de droit public peut être interjeté pour violation du droit, tel qu'il est délimité par les art. 95 et 96 LTF. Le Tribunal fédéral applique le droit d'office (<ref-law>). Il statue par ailleurs sur la base des faits établis par l'autorité précédente (<ref-law>), sauf s'ils ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'<ref-law> (<ref-law>). Le recourant qui entend s'en écarter doit expliquer de manière circonstanciée en quoi les conditions de l'<ref-law> sont réalisées sinon un état de fait divergent ne peut pas être pris en considération.
2.
Le litige a trait au droit de l'intimé à une rente de l'assurance-invalidité. Compte tenu des conclusions et motifs du recours, est seule litigieuse la question de savoir s'il convient d'opérer un abattement sur le revenu d'invalide et, le cas échéant, à quel taux.
3.
3.1. La juridiction de première instance a considéré qu'il convenait de procéder à un abattement de 10 % sur le revenu d'invalide "au regard notamment d[u] taux d'activité réduit à 70 % [de l'intimé] et de son besoin de changer de position toutes les 15 à 20 minutes". En se fondant sur les revenus de valide et d'invalide retenus par l'office recourant, abstraction faite de l'indexation de ceux-ci de 2014 à 2015, et en tenant compte dudit abattement, les premiers juges ont fixé le taux d'invalidité de l'intimé à 43 % ([78'520 fr. - 44'608 fr. 15] / 78'520 fr. x 100 = 43,18 %). En conséquence, ils ont reconnu le droit de l'assuré à un quart de rente d'invalidité dès le 1er décembre 2014.
3.2. L'office recourant conteste l'abattement de 10 % opéré par les premiers juges sur le revenu d'invalide, en leur reprochant, en substance, d'avoir abusé de leur pouvoir d'appréciation. En premier lieu, ils auraient arbitrairement tenu compte d'une limitation fonctionnelle de l'intimé comme critère d'abattement. Celle-ci avait déjà été prise en considération par l'expert C._ lors de la détermination de l'étendue de la capacité de travail dans une activité adaptée. Selon l'administration, la juridiction cantonale a également abusé de son pouvoir d'appréciation en retenant à titre de critère de déduction celui de l'exercice d'une activité à temps partiel. Aussi, sauf à "tomb[er] dans l'arbitraire", l'autorité judiciaire de première instance ne pouvait-elle pas s'écarter de l'appréciation de l'office recourant (taux d'abattement de 0 %).
4.
4.1. En ce qui concerne le taux d'abattement, on rappellera que la mesure dans laquelle les salaires ressortant des statistiques doivent être réduits dépend de l'ensemble des circonstances personnelles et professionnelles du cas particulier (limitations liées au handicap, âge, années de service, nationalité/catégorie d'autorisation de séjour et taux d'occupation). Une déduction globale maximale de 25 % sur le salaire statistique permet de tenir compte des différents éléments qui peuvent influencer le revenu d'une activité lucrative (cf. <ref-ruling> consid. 5b/aa-cc p. 79 s.).
4.2. Le point de savoir s'il y a lieu de procéder à un abattement sur le salaire statistique en raison de circonstances particulières (liées au handicap de la personne ou à d'autres facteurs) est une question de droit qui peut être examinée librement par le Tribunal fédéral; en revanche, l'étendue de l'abattement du salaire statistique dans un cas concret constitue une question relevant du pouvoir d'appréciation, qui est soumise à l'examen du juge de dernière instance uniquement si la juridiction cantonale a exercé son pouvoir d'appréciation de manière contraire au droit, soit si celle-ci a commis un excès positif ("Ermessensüberschreitung") ou négatif ("Ermessensunterschreitung") de son pouvoir d'appréciation ou a abusé ("Ermessensmissbrauch") de celui-ci, notamment en retenant des critères inappropriés, en ne tenant pas compte de circonstances pertinentes, en ne procédant pas à un examen complet des circonstances pertinentes ou en n'usant pas de critères objectifs (<ref-ruling> consid. 5.1 p. 72; <ref-ruling> consid. 3.3 p. 399; <ref-ruling> consid. 1.2 p. 180).
5.
5.1. Comme le fait valoir à juste titre l'office recourant, la limitation fonctionnelle dont ont fait état les premiers juges pour admettre un abattement sur le revenu statistique d'invalide a été prise en compte lors de l'évaluation de la capacité de travail du point de vue médical. Il ressort en effet du rapport d'expertise du docteur C._ que la diminution de la capacité de travail de 30 % prend en considération les limitations fonctionnelles de l'intimé, notamment la "[n]écessité de pouvoir alterner les positions assises et debout toutes les 15 à 20 min.". L'expert a par ailleurs précisé avoir également intégré la baisse de rendement de l'intéressé dans son appréciation de la capacité résiduelle de travail. Aussi, en retenant que ladite limitation fonctionnelle devait être prise en compte dans le cadre de l'abattement, la juridiction cantonale a-t-elle usé d'un critère inapproprié et excédé son pouvoir d'appréciation. Celle-ci n'a au demeurant pas mis en évidence d'empêchements supplémentaires qui restreindraient l'assuré dans l'exercice d'une activité adaptée et devraient, de ce fait, être pris en considération pour la déduction sur le revenu d'invalide.
5.2. S'agissant du critère du taux d'occupation réduit, il peut être pris en compte pour déterminer l'étendue de l'abattement à opérer sur le salaire statistique d'invalide lorsque le travail à temps partiel se révèle proportionnellement moins rémunéré que le travail à plein temps.
5.2.1. Le Tribunal fédéral a déjà eu l'occasion de constater que le travail à plein temps n'est pas nécessairement mieux rémunéré que le travail à temps partiel; dans certains domaines d'activités, les emplois à temps partiel sont en effet répandus et répondent à un besoin de la part des employeurs, qui sont prêts à les rémunérer en conséquence (<ref-ruling> consid. 5a/cc p. 79; cf. aussi arrêt 8C_49/2018 du 8 novembre 2018 consid. 6.2.2.2). Cela étant, si selon les statistiques, les femmes exerçant une activité à temps partiel ne perçoivent souvent pas un revenu moins élevé proportionnellement à celles qui sont occupées à plein temps (cf., p. ex., arrêt 9C_751/2011 du 30 avril 2012 consid. 4.2.2), la situation se présente différemment pour les hommes; le travail à temps partiel peut en effet être synonyme d'une perte de salaire pour les travailleurs à temps partiel de sexe masculin (arrêt 8C_805/2016 du 22 mars 2017 consid. 3.2).
5.2.2. En l'espèce, l'intimé se prévaut du fait qu'il résulte de l'Enquête suisse sur la structure des salaires 2014 que le montant du salaire mensuel brut standardisé sans fonction de cadre des travailleurs de sexe masculin est inférieur en cas d'emploi à temps partiel. Selon le tableau T 18 "Salaire mensuel brut (valeur centrale) selon le taux d'occupation, la position professionnelle et le sexe" de l'ESS 2014, on constate en effet que les travailleurs occupés entre 50 % et 74 % perçoivent un salaire mensuel de 5'714 fr. (calculé sur la base d'un taux d'occupation de 100 %), soit un salaire moins élevé que celui versé en cas d'emploi à temps plein (taux d'occupation de 90 % ou plus), lequel se monte à 6'069 fr. Dans la mesure où les statistiques démontrent que les travailleurs occupés entre 50 % et 74 % reçoivent un salaire mensuel inférieur de 5,84 % à celui versé aux hommes travaillant à temps plein (taux d'occupation de 90 % ou plus), il se justifie de procéder à un abattement supplémentaire pour ce motif (cf. arrêts 8C_49/2018 du 8 novembre 2018 consid. 6.2.2.2; 8C_805/2016 du 22 mars 2017 consid. 3.2 dans lesquels la question de l'abattement supplémentaire de 5 % pour cause de travail à temps partiel a été laissée ouverte parce qu'elle ne jouait aucun rôle sur l'issue du litige).
En l'occurrence, les premiers juges ont procédé à un abattement de 10 % compte tenu d'une limitation fonctionnelle de l'intimé, ainsi que du désavantage salarial induit par son taux d'activité réduit à 70 %. Si en prenant en considération la limitation fonctionnelle dans le cadre de l'abattement, la juridiction cantonale a fait usage d'un critère inapproprié et excédé son pouvoir d'appréciation (consid. 5.1 supra), on ne saurait en revanche lui reprocher d'avoir violé son pouvoir d'appréciation en tenant en compte de la perte de salaire subie par l'intimé, dès lors qu'il ressort des statistiques que celui-ci subit un désavantage salarial de 5,84 % en raison de son taux d'occupation réduit (capacité résiduelle de travail de 70 %). Partant, il se justifie d'opérer un abattement de 5 % (et non de 10 %) sur le revenu statistique d'invalide.
5.3. En conséquence de ce qui précède, il convient, pour déterminer le taux d'invalidité de l'intimé, de se fonder sur les revenus sans invalidité et d'invalide (avec un abattement de 5 %) retenus par la juridiction de première instance, qui ne sont pas contestés par les parties. Selon le jugement entrepris, le revenu de valide s'élève à 78'520 fr., respectivement le revenu d'invalide (avant l'abattement) à 49'564 fr. 60. Après comparaison des revenus, en opérant un abattement de 5 % sur le revenu d'invalide, le taux d'invalidité de l'assuré doit être fixé à 40 % ([78'520 fr. - 47'086 fr. 30] / 78'520 fr. x 100 = 40,03 %). Partant, en tant qu'il a reconnu le droit de l'assuré à un quart de rente d'invalidité dès le 1er décembre 2014, le jugement cantonal est conforme au droit dans son résultat. Le recours est mal fondé.
6.
Vu l'issue du litige, les frais judiciaires et les dépens doivent être mis à la charge du recourant (art. 66 al. 1 et 68 al. 1 LTF). La demande d'assistance judiciaire formulée par l'intimé pour la procédure fédérale est dès lors sans objet.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de l'office recourant.
3.
L'office recourant versera à l'avocat de l'intimé la somme de 2'400 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Fribourg, II e Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 29 avril 2019
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
La Présidente : Pfiffner
La Greffière : Perrenoud