object render overlaying

Is it possible to setup an object to be rendered after all other objects in a scene,
so that rendering this object can access scene z-buffer from attached glsl shader?

Depends on what you are trying to do. If you are trying to do a 2D filter then there is an actuator that does this specifically. I’m not sure if there is a good way to force the rendering order for objects. I’m sure the BGE does at least a few tricks with the render order depending on the scene layout. At the very least you have to render in the correct order to get transparency to work correctly.

The 2D filter is not exactly what i need.
I need some varying and uniforms to pass.

And this code does not work either:

uniform sampler2D bgl_DepthTexture;
void main(void)
{
  gl_FragColor = texture2D(bgl_DepthTexture, gl_TexCoord[0].st);
}

Try searching in the BGE resources forum for SSAO ( Screen space ambient occlusion). If memory serves, that is a glsl filter that uses the depth buffer. You should be able to use it to figure out how to get it for your filter.