You can link static or dinamic for a dinamic example see the OpenGL units (gl, glu, glut)
Have a look at dllfuncs, but for OpenGL on Linux you might need to make a simple modification:
you should add 'const RTLD_GLOBAL = $100' and in
function LoadLibrary change 'Result := THandle(dlopen(Name, RTLD_LAZY));' to
'Result := THandle(dlopen(Name, RTLD_LAZY or RTLD_GLOBAL ));'
If you only need to work in windows then you could load a dll just like in Delphi.