Err, 150mm squared, the whole thing; or 150 mm^2, just the units?
If ~12 x 12 mm, you'll have a hard time putting on more than one of any kind of isolator. If you can find a digital isolator with auto-detect bidirectional operation, that may be the ticket.
Or, possibly a USB isolator then USB-JTAG interface. Or just an isolating USB cable, or laptop. Assuming the usual situation of course, and not an embedded self-programming situation.
I'm a bit suspicious of the latter use case, because that's what [drum roll please] bootloaders are for. A simple two wire UART only needs a dual opto to do the job. A bit slow perhaps (>1Mbps can be hard to find support for) but keeps the interface as minimal as possible.
If it's something like an MCU loading an FPGA, you may be able to partial-load the FPGA for bootloader hardware, then finish the job this way. Or just put the MCU on the high side, in the same area you have available for the isolator, and communicate with it somehow.
The low isolation may also suggest just using diffamps to sense it. This has issues with CMRR at high frequencies, but amps and comparators fit for the task are readily available. You would probably use up all your space on resistors (even using 0402s and packs), unless you find an in-amp, say, that happens to do the job.
And if it's not isolation at all that you need -- this serves as example for how different a problem it is, versus merely limiting or clamping inputs.
For limiting, series resistors to limit current, and clamp diodes to limit voltage, are a fine solution. Or you can get somewhat higher bandwidth using pairs of depletion MOSFETs (which act like small resistors for low voltages, but constant current sources for high voltages). Indeed, the latter can be used to obtain full mains cross-wiring protection (>160Vpk), if you need it! But still all common ground -- no isolation or CMRR to speak of, very different problem.
Tim