Indeed, you have to manually load all extensions if you use the SDL GL headers, dglOpenGL does this automatically.

[pascal]
const
MAX_EXTENSION = 1;
Extensions: array [0..MAX_EXTENSION] of String = (
'GL_ARB_multitexture',
'xxx'
);


for i := 0 to MAX_EXTENSION do
if glext_ExtensionSupported(PChar(Extensions[i]), #0) then
glext_LoadExtension(Extensions[i])
else
s := Extensions[i] + #13#10;
if s <> '' then
raise EOpenGLError('All needed OpenGL extensions are not supported! Unsupported extensions: ' + #13#10 + s);
[/pascal]

That's what I seem to have in my OpenGL initialization when using SDL.