Just as a test, you could try a cooler plug. I would try to get to where it isn't pinging (safe ) first and then creep back to under the threshold of pinging. If the spark plug is a too cool it won't hurt anything but it might dirty up a bit sooner.
More octane, cooler plug, slightly richer A/f mixture at wot, less timing and not too hot on engine temp are the knobs you have to work with to get things dialed in.
An o2 sensor could be helpful in sorting out your a/f ratio and it can serve as a backup to confirm what you see on your sparkplugs. The biggest help with a o2 sensor is timing. Not ignition timing but when the A/F ratio is what it is. For example: rich at idle, good at cruise but lean at wot. This might be harder to sort out with a plug reading by itself. Put O2 bungs on both sides of the motor so you can check both sides. They don't always read the same. Don't get hung up on the numbers, Let the motor tell you what it likes.
Have you done a cranking compression test yet? Curious what that is.
I would start with the octane first to see if you can get it to stop pinging. Get an o2 sensor and see were your at. When you get it dialed in you can take away octane to see what you can get by on. Then you can creep up on your spark plug heat range and find your limit.
Before taking timing measurments be certain the tdc mark is correct. Always include the rpm with the timing measurment.
I'm not saying 10.7 is or isn't doable on pump gas but it will be fussier than 9.0 :1 for sure. Also 10.7 seems like it may be an estimate. It might be a little higher or lower. Without measuring it you won't know for sure. There are limits as to how much compression an engine will tolerate at a certain octane.
Good luck on your project!