I know this is kind of an old question, but I stumbled upon it looking for a solution myself. Having done some digging, here's what I've come up with:
Assuming you already have a timespan variable (either setting it in the datasource, or having a variable set with DateDiff), you can format it with the following:
{string.Format("{0}:{1}:{2}",
(int) Variable1.TotalHours,
Variable1.Minutes,
Variable1.Seconds)}
Lets say you have two different fields (named Date1 and Date2) that you need to get the difference of, and don't feel like putting it into a variable:
{string.Format("{0}:{1}:{2}",
(int) DateDiff(Date2,Date1).TotalHours,
DateDiff(Date2,Date1).Minutes,
DateDiff(Date2,Date1).Seconds)}