Q:

merge columns of line n+1 to line n

iostat can show persistent device names (with -j id) instead of kernel device names (e.g. sda) but this also implies the option -h for "human readable" output. 
This results in output like this (a line that contains the persistent disk name, e.g. HOMES or DATADISK and the next line contains the values for that disk). 
(in my example I piped the output of iostat to awk '// {print strftime("%Y-%m-%d %H:%M:%S"),$0}' to have a timestamp at the beginning of every line):
2018-06-13 11:57:03 HOMES
2018-06-13 11:57:03                   0.00     0.00    0.00    0.50     0.00     2.00     8.00     0.00    1.00    0.00    1.00   1.00   0.05
2018-06-13 11:57:03 ARCHIVEDISK
2018-06-13 11:57:03                   0.00     0.00    0.00    0.50     0.00     2.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
2018-06-13 11:57:03 DATADISK
2018-06-13 11:57:03                   0.00     0.00   86.00    0.50   680.00     2.00    15.77     0.12    1.40    1.41    1.00   1.26  10.90
2018-06-13 11:57:05 HOMES
2018-06-13 11:57:05                   0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
2018-06-13 11:57:05 ARCHIVEDISK
2018-06-13 11:57:05                   0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
2018-06-13 11:57:05 DATADISK
2018-06-13 11:57:05                   0.00     0.00  122.00  116.00   976.00  1164.00    17.98     0.56    2.33    3.36    1.26   1.47  34.90

how can I merge the lines so I get this:
2018-06-13 11:57:03 HOMES             0.00     0.00    0.00    0.50     0.00     2.00     8.00     0.00    1.00    0.00    1.00   1.00   0.05
2018-06-13 11:57:03 ARCHIVEDISK       0.00     0.00    0.00    0.50     0.00     2.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
2018-06-13 11:57:03 DATADISK          0.00     0.00   86.00    0.50   680.00     2.00    15.77     0.12    1.40    1.41    1.00   1.26  10.90
2018-06-13 11:57:05 HOMES             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
2018-06-13 11:57:05 ARCHIVEDISK       0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
2018-06-13 11:57:05 DATADISK          0.00     0.00  122.00  116.00   976.00  1164.00    17.98     0.56    2.33    3.36    1.26   1.47  34.90

A:

Using awk:
awk 'NF==3{n=$3;next}{for(i=NF;i>2;i--) $(i+1)=$i;$3=n}1' file | column -t

The awk script gets the name if the line contains 3 elements.  
For all other lines, it shifts all elements by one position except for the first 2.  
At last the line is printed. 
The command column is reformatting to display it per column.