It is a tricky question indeed...
I'm not aware of any math formula that would let you calculate this however my crazy idea is to use Tableau 10 and join your data with dataset that would duplicate your rows (1,2,2,3,3,3 ...) and then you could do a median.
Of course, you'd have to do some more work to hide duplicate rows for all the other calculations - I added extra field in dataset to filter on that (see first sheet).
Attached workbook is from Tableau 10 so you will have to download that order to use it.
Train Delays Sample v10.twbx 18.6 KB