I think in Assembler this should be possible, but in (Turbo) Pascal at least there's no way to compile directly into the data block

(for C probably not, too, but don't know it exactly). Unfortunately, sizeof() doesn't work for procs (in TP; C?), but no problem.
Code would look this like:
{procedure pointers}
var hline: procedure(x,y,w: integer);
vline: procedure(x,y,h: integer);
...
{block with critical procedures}
procedure hlinecritical(x,y,w: integer); far;
begin
...
end;
procedure vlinecritical(x,y,w: integer); far;
begin
...
end;
... {maybe some other critical routines}
procedure dummy; {we need it as sizeof doesn't work here}
begin
end;
var criticalprocs: pointer;
criticalprocssize: word;
begin
{copy to RAM}
criticalprocssize := ofs(dummy)-ofs(hlinecritical);
getmem(criticalprocs,criticalprocssize);
move(ptr(cseg,ofs(hlinecritical))^,criticalprocs^,criticalprocssize);
{initialize vars}
hline := criticalprocs;
vline := ptr(dseg,word(criticalprocs)+ofs(vlinecritical)-ofs(hlinecritical));
copysprites := ptr(dseg,word(criticalprocs)+ofs(copyspritescritical)-ofs(hlinecritical));
...
end.
Should work, but not tested