glTexSubImage’s efficiency will be affected by the texture format you use. For example on some platforms the difference between GL_RGBA and GL_BGRA as the texture format can give as much as 10%-15% performance difference because the GPU may or may not have to “swizzle” the data.
For faster texture “uploads” to the GPU you should consider using PBOs and double buffering them.
Take a look at this… http://www.songho.ca/opengl/gl_pbo.html