awk:
awk '
/__DELETE_THIS_LINE_BEGIN__/ {keep=1; next}
/__DELETE_THIS_LINE_END__/ {keep=0; move=4; next}
keep {saved[++s]=$0; next}
move-- == 0 {for (i=1; i<=s; i++) print saved[i]; delete saved; s=0}
1
END {for (i=1; i<=s; i++) print saved[i]}
' file
01 text text text
02 text text text
09 four
10 interesting
11 lines
12 follow
04 text text text
05 text text text
06 text text text
07 text text text
13 text text text
14 text text text
15 text text text
16 text text text
23 even
24 more
25 interesting
26 lines
18 text text text
19 text text text
20 text text text
21 text text text
Além disso, com o awk, você pode redefinir o separador de registro:
awk -v RS='\n[0-9]+ __DELETE_THIS_LINE_(BEGIN|END)__\n' '
NR%2 == 0 {saved=$0; next}
{
n=split($0, lines, "\n")
for (i=1; i<=4 && i<=n; i++) print lines[i]
if (saved) print saved
for (i=5; i<=n; i++) print lines[i]
}
' file
produz o mesmo resultado.