What happens when you use SENSOR_DELAY_FASTEST with registerListener()?
That gets data from the sensor as fast as android can possibly handle, so I imagine that's what you need to do. Because android uses the linux kernel, it's very difficult to create real time code.
If sensor_delay_fastest doesn't work for you, I don't imagine any native code you write will be much faster.