It seems there's a fairly simple way to get a good approximation of the impedance of a random piece of cable.
It requires a fast oscilloscope, a pulse generator with a fast rising edge, and a potentiometer with a range that includes the cable's impedance (cable impedance is usually less than 500 ohms.) The cable you want to test must also be long enough that your scope can detect the reflection. The faster the scope, and the faster the rising edge of the signal, the shorter your test cable can be.
Summary of the method:
- Estimate the reflection time. That's approximately \$ \frac { 2\times l} {0.66 \times c}\$ where \$c\$ is the speed of light in meters (around 300 meters per microsecond) and \$l\$ is the length in meters.
- Set the oscilloscope to a sampling rate and sample depth adequate to capture at least the estimated reflection time.
- Make sure that the pulses from the generator are spaced farther apart than the reflection time.
- Attach the signal generator to the scope input, and from there to the cable you are testing. The cable to test and the cable to the signal generator join in a "T" at the oscilloscope input. Make sure the scope is set to high impedance (1M) if it has a low impedance mode.
- Start the generator, and check that you are getting a reflection (with an ended open cable, it should be a somewhat smeared version of the generator pulse.)
- Adjust the scope to trigger on the signal, not the reflection.
- Attach a potentiometer across the open end of the cable. Preferably one somewhat close to a reasonable estimate of the cable impedance (couple of hundred ohms, but definitely not 10k.)
- Adjust the potentiometer to minimize the reflection.
- Disconnect the potentiometer from the cable and measure the value.
The measured value won't be extremely precise, but then impedance matching doesn't require matching down to a fraction of an ohm (or even single digit ohms.)
To take your example of terminating a 120 ohm cable with a 150 resistor, the reflection would be about 19dB weaker than the signal. So the reflection is a bit more than 0.01 times the driving signal. Makes about 0.05 volts of reflection for a drive signal of 5V. Try the suggested method for measuring the reflection, but use different fixed resistors and see how big (or small) the reflection is.
I've not used this method myself, so I can't tell you how difficult it is to carry out or if there are any pitfalls to watch out for.
Maybe you could give it a try and write up your experience with it as a more detailed version of this answer.
Added later:
I was going to let this go, but I ended up having to go to my work room to fix a problem with my mail server. While waiting for some (big) files to copy, I went ahead and tried out the impedance measurement trick.
It turns out to be pretty simple, and can be done even with an old, slow analog oscilloscope. My scope is too slow to measure cable lengths that way, but it can surely show you if your cable is matched.
You can use pretty much any oscilloscope and a simple pulse generator. The slower the scope, though, the longer your test cable must be to make a noticable reflection. The pictures below were all made using a 5 meter cable. A two meter cable still shows reflections, but they aren't as distinct. Anything shorter than 2 meters will require a faster scope than I am using. As the cables get longer, you will see the reflections actually move away from the rising edge of the signal and become separate pulses.
Simplifed steps:
- Program an Arduino Nano to generate a 1MHz pulse, with the shortest possible duty cycle. That's about 12.5% using the TimerOne Library.
- Set the scope so that you can see a 1 MHz signal - mine goes up to 0.5 microseconds per division.
- Connect the Nano output to your scope input using a T.
- Observe the waveform - it should be a narrow square wave with somewhat rounded shoulders.
- Connect the cable to test to the other end of the T.
- You'll see a horribly distorted square wave.
- Attach a potentiometer to the open end of the cable.
- Tune the potentiometer until you get the nice, clean square wave back, but with maximum peak voltage.
- Remove the potentiometer and measure the resistance.
It looks like this:
Setup:

The results look like this:
No cable:

Cable with open end:

If my scope were ten times faster (50 nanoseconds per division instead of 500) then you could just about measure the length of the cable. You don't need to measure the cable length to see the distortion, though. That slight "dog leg" on the rising edge of each pulse is the length of the cable - rather, twice the length. Out and back.
Properly terminated cable:

I used a proper terminator, but the effect would be the same if you attach a small potentiometer directly to the end of the cable and tune it for best match. As mentioned above, you want to make it clean but not unduly squashed. If you make the resistance too low, the level will drop and get distorted again. You want the cleanest and highest signal you can get.
Notice that the voltage is higher without the attached test cable than with the properly terminated cable. The Nano has to drive a 50 ohm load when the terminator is present. Its outputs appear to have a just a bit less than 50 ohms impedance, so the level drops with the terminator present - the output impedance and the terminator form a voltage divider. From the voltages measured, I'd estimate the output impedance of the Nano at around 30 ohms.
So, you can measure the impedance of a cable with fairly primitive tools and still get usable results.
You can also get a direct comparison of just how bad a mismatch is. Measure the cable impedance, then intentionally terminate it with a resistor that is slightly off. You can then see just how horrible (or not) it is.
Since the code is pretty short, here's the Nano program to generate the pulses:
#include <TimerOne.h>
#define SIGNAL_OUT_PIN 9
#define DUTYCYCLE_ON 128 /// 128/1024 gives a 12.5% duty cycle. The Nano won't produce a shorter wave.
#define PERIOD 1 //1 microsecond period for 1 MHz
void setup() {
pinMode(SIGNAL_OUT_PIN, OUTPUT);
Timer1.initialize(1);
Timer1.pwm(SIGNAL_OUT_PIN,DUTYCYCLE_ON,PERIOD);
}
void loop() {
}