I would note that the north and south of Italy have very different geography and climate. Which can be upstream of all sorts of things, culturally. The geography of Italy's two halves support different types of economic activity; and the social realities of living within these different economies, naturally evolves into major differences in culture. (Compare/contrast: the differing cultures of coastal vs midwestern America. Now imagine that split with a few thousand more years for the divergence to take hold.)
History happens once; but geography is always affecting a nation, all throughout its evolution. So if you're looking for reasons that two sub-populations within a country might have noticeable differences today, differing geography is going to be the "horse", while history is more of the "zebra."
That being said: geography can also constrain history.
Southern Italy is almost entirely coastline, in a part of the world where, for much of the last ~2000 years, everyone was constantly invading everyone else by sea. Northern Italy was relatively-more immune to amphibious assault, as its capitals could be situated more inland. (Rome itself — the exception that proves the rule — was located in south Italy, but was defended from amphibious assault mostly by the Roman Empire's huge naval home-fleet being docked to the southern-Italian coast; not by anything inherent to its location. Once the Roman Empire itself went away, big rich cities in southern Italy suddenly became juicy targets for conquest and/or sacking.)