This is a typical one to many / many to one data transform. I've gotten things reformatted most of the way but this last step - combining column rows based on matching value in another column is something I'm stuck on.

In excel I'd use something with VLOOKUP to do this. I can't quite figure out how to do this in OpenRefine even after RTFM.
I've tried various transforms but cannot get it working. When using the rows to columns transform it asks how many columns but it doesn't seem to handle this exact case either
I think what makes your transformation "problematic" is, that you have two keys (columns "Key" and "New"). So I would create a temporary double key column to sort and transform the data accordingly.
Transforming using Records and multi-valued cells
One way is to use the records mode of OpenRefine by creating records based on a temporary double key column.
Transforming using cross
You could use the cross function to look up other cells. But you still need a unique key.