Is it even possible to mine at 1GH/s, and all diff>=32 get submitted to your pool, and any diff<32 get submitted to another pool?
Negative. For the same reason that it is impossible to mine on a pool and take any found blocks yourself.
When mining you are doing hash(DATA_FROM_POOL + NONCE + TIME). Your client changes the nonce and to a certain extent the time. The DATA_FROM_POOL includes a hash of a transaction group that includes a payment to the pool. You can't change that without invalidating the work. Pools also check that the work unit you are submitting is one they gave out.