Uno interfacing to system with scanned keypad

This has "FPGA" written all over it. With an FPGA you could automatically make a certain column low when a certain row gets low.

The Arduino is able to switch between output_low and input. That is some kind of open collector.
It is possible to set the output low, and after that setting the pin to output.
digitalWrite(pin,LOW); // this is already the default at power on
pinMode(pin,OUTPUT);
To disable the output, just make it input.
pinMode(pin,INPUT);

You can do this also with direct register access. You can check the links in my previous post and read the datasheet about PORTB, DDRB and PINB.

The row outputs (of the original hardware) to the input pins of the Arduino need series resistors of 1k to 10k for protection.
And even with that, if the Arduino has no power, the current via the resistors might be enough to make the Arduino start working.

I think with an dedicated Arduino you could respond in about 1us. But is will be not easy.
With "dedicated" I mean no interrupts (disabling the Arduino timing interrupt) and optimized with precalculated data and tables and receiving the keystrokes from a second Arduino. The second Arduino interfaces between the dedicated Arduino and the rest of the world.

An other option is to have interrupts enabled for all the rows. That way the respons time is perhaps 2 or 3us.

You need the PCINT interrupts for that.

How reliable it will be depends greatly on the original hardware and software. I assume that very little is known about that, so it will be very hard to guarantee a 100% solid solution.

The easy way is to use optocouplers or reed relays for every button. Some reed relays can be directly driven by an Arduino pin (you still need a flyback diode).