Thank you arturo!
I've tried GL_DYNAMIC_DRAW and GL_STREAM_DRAW. Unfortunately, none of them makes much difference to GL_STATIC_DRAW in this example.
I asume the time consuming job is some "actual" rendering stuff by the GPU, not the process of copying data from app's memory into OpenGL's memory.
There is an tutorial from Apple's iOS Developer Library. In the "Map Buffers into Client Memory for Fast Updates" section, it mentions about
Use this function (glMapBufferRange) to retrieve a pointer to a region of OpenGL ES memory, which you can then use to write new data
so, according to the assumption earlier, even if the mapping process is possible in openFrameworks, it may not improve the performance either. Am I right?