Если ваша дельта времени постоянна, упорядочена и не имеет пропущенных значений:
DELTA = 3
new_values = [df['Values'].iloc[i*DELTA:i*DELTA+DELTA].values.transpose() for i in range(int(len(df)/DELTA))]
df_new = pd.DataFrame(new_values , index=['Val'+str(i+1) for i in range(len(new_values ))])
print(df_new)
0 1 2
Val1 22 45 65
Val2 78 12 45
Не очень хорошее решение, но, возможно, оно поможет. : -)