Laureato in Ingegneria meccanica al Politecnico di Milano nel 1983, vi ha conseguito un master in Direzione aziendale nel 1987. Già sindaco di Tradate dal 1993 al 2002 per due mandati, ha militato fin da giovane nella Lega Nord arrivando a candidarsi per la carica di deputato nelle elezioni politiche italiane del 1996 risultando il primo dei non eletti nella circoscrizione Lombardia 2; subentra poi al deputato Carlo Frigerio, deceduto nel 1997, a seguito di elezioni suppletive. Il 4 giugno 1997 entra alla Camera dove si iscrive al gruppo Lega Nord. Durante questa legislatura è membro della Commissione Bilancio della Camera dal 6 giugno 2000 all'11 giugno 2001 e componente della Commissione parlamentare di inchiesta sul ciclo dei rifiuti e sulle attività illecite ad esso connesse dal 24 luglio 2000 all'11 giugno 2001.
Ricandidato alla Camera nelle elezioni politiche italiane del 2001 risulta rieletto. Durante la XIV legislatura ricopre il ruolo di membro del comitato direttivo e vice capogruppo del gruppo Lega Nord alla Camera dei Deputati dall'11 giugno 2001 al 27 aprile 2006 e capogruppo della Lega Nord in Commissione Lavoro della Camera dal 4 giugno 2001 al 27 aprile 2006.
Decide di non ricandidarsi alla Camera optando per il Senato dove viene eletto per la prima volta. Nella XV legislatura ricopre l'incarico di vice capogruppo del gruppo Lega Nord al Senato della Repubblica dal 3 maggio 2006 al 28 aprile 2008. Membro della Commissione Lavoro del Senato dal 6 giugno 2006 al 28 aprile 2008 ricoprendo anche l'incarico di componente della commissione parlamentare di inchiesta sul fenomeno degli infortuni sul lavoro, con particolare riguardo alle cosiddette "morti bianche" dal 13 novembre 2006 al 28 aprile 2008. Infine ricopre l'incarico di membro della Commissione parlamentare di Vigilanza sui servizi radiotelevisivi dall'11 settembre 2008 al 28 aprile 2008.
Il 21 aprile 2013, a seguito delle modifiche apportate dal governo alla forma amministrativa delle province, la giunta e il consiglio varesino vengono dichiarati decaduti e commissariati: Galli comunque resta alla guida dell'ente, seppur non più con competenza presidenziale, fino alle nuove elezioni.
Il 25 giugno 2017 viene rieletto al turno di ballottaggio sindaco della città di Tradate, battendo l'amministratrice uscente Laura Fiorina Cavalotti.
Alle elezioni politiche italiane del 2018 è eletto nel plurinominale Lombardia 2 e il 12 giugno è nominato viceministro allo Sviluppo Economico nel Governo Conte I.[1] A seguito di ciò, il 13 ottobre 2018 lascia la carica di primo cittadino tradatese, dopo che la giunta delle elezioni e delle immunità parlamentari delibera l'incompatibilità tra gli incarichi ricoperti[2].Si candida poi per il rinnovo del consiglio comunale nel 2019, dove risulta eletto con 66 preferenze.