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