BCl3 is a non-polar molecule even though it contains three polar bonds. This is because the polar bonds are arranged symmetrically around the central atom, which causes the polarity of the bonds to cancel out.
In BCl3, the boron atom is the central atom, and the three chlorine atoms are arranged symmetrically (120 degrees apart) around the boron atom. Boron has three valence electrons, and it shares each electron with a chlorine atom. Each chlorine atom also contributes one of its seven valence electrons to form a covalent bond. Since chlorine is more electronegative than boron, each chlorine atom attracts the bonded pair of electrons towards itself, thus creating three polar bonds. However, since the bonds are evenly spaced around the boron atom, the polarities of the three bonds cancel each other out, thus leaving BCl3 with no molecular polarity.