Di Gregorio represented Italy at the 2008 Summer Olympics in Beijing. He competed in the 4×100 metres relay together with Fabio Cerutti, Simone Collio and Jacques Riparelli. In their qualification heat they were disqualified and eliminated. He achieved a new personal best at the 2009 European Athletics Indoor Championships in Turin with a 6.56-second run for the 60 metres dash. A photo-finish revealed he came in third just ahead of Great Britain's Simeon Williamson (6.57).