You have three options:
1) The poor man's solution is to start individual sessions with -RO. The downside to this is that your sessions may crash if other sessions update data in a manner that makes it appear to be corrupt (because your -RO session will not see changes that are being made in shared memory). Generally speaking this option is really only usable for unimportant, occasional read-only access.
2) Implement OE Replication Plus. This will allow you to run read-only sessions against the replication target complete with real-time updates and all of the benefits of shared memory sessions. The downside is that you have to purchase OE Replication Plus licenses.
3) Write lots and lots of probably very buggy code to try to enforce such a feature at the application level. Good luck. It will also ultimately probably cost more (in programmer time) than OE Repl+.