Предполагая, что вы выбираете расписание с order by finish asc из базы данных, вы можете сделать что-то вроде этого (пропуская сплит для краткости):
$fastest = $previous = $timesheet['Run'][0]['finish'];
foreach ($timesheet['Run'] as $run):
<tr>
<td><?php echo $run['athlete_id'];?></td>
<td><?php echo $run['finish'];?></td>
<td><?php echo $previous - $run['finish'];?></td>
<td><?php echo $fastest - $run['finish'];?></td>
</tr>
$previous = $run['finish'];
endforeach
Это должно привести к таким строкам:
id | finished_in | to_previous | to_best
1 | 120 | 0 | 0
2 | 121.5 | -1.5 | -1.5
3 | 121.8 | -0.3 | -1.8
4 | 122.6 | -0.8 | -2.6
...
Другой вариант - заключить возвращенный массив в Object или, возможно, в ArrayIterator и выполнить вычисления внутри, включая $ fasttest и $ previous и все, что вы захотите вычислить.