Давайте сделаем concat
df=pd.concat([df1,df1,df1],keys=list('ABC'),axis=1).swaplevel(0,1,axis=1).sort_index(level=0,axis=1)
value1 value2
A B C A B C
index
0 a0 a0 a0 b0 b0 b0
1 a1 a1 a1 b1 b1 b1
2 a2 a2 a2 b2 b2 b2
3 a3 a3 a3 b3 b3 b3
Обновление
l=['M1', 'M2', 'DIF']
pd.concat([df1,df1,df1],keys=['M1', 'M2', 'DIF'],axis=1).swaplevel(0,1,axis=1).reindex(columns=pd.MultiIndex.from_product([list(df1),l]))
value1 value2
M1 M2 DIF M1 M2 DIF
index
0 a0 a0 a0 b0 b0 b0
1 a1 a1 a1 b1 b1 b1
2 a2 a2 a2 b2 b2 b2
3 a3 a3 a3 b3 b3 b3