The first is a latch.
This sounds more like an SPI chip select than a "latch" signal, since your description gives the impression that this is an input device. If the device is an output, then "latch" is a more likely possibility.
If you're not doing a large volume fo data to/from this device, efficiency probably doesn't matter. Especially if you do a more-optimized driver for it, rather than using the simple, but not terribly efficient, library routines like digitalRead() and digitalWrite().
If you're doing lots of I/O to it, and optimizing the code isn't enough, you could offload the work from the Arduino CPU to another CPU chip. Even to another cheap Arduino, like an RBBB, that's been programmed to act as an I2C slave (Someone posted an example in "Exhibition" in the last few months of setting up two Arduinos to work as master and slave on an I2C bus). Or to something like an ATTiny chip with hardware I2C slave support.
Since it sounds like you're still a relative newbie, my suggestion is to do something based on the two-Arduino example I mentioned above: it costs a little more, but it's easier than learning a new CPU, or some other approach that a more-experienced person would consider "simple enough to feel confident tackling it" but is daunting for someone still learning the ropes.