I've built out an example of what I described in my last post. The logic is that I add a GREP Style "Oldstyle" to change all numbers to Proportional Oldstyle. I then apply a second GREP style "NOT Oldstyle" which applies a regular number style to anything it finds in brackets which includes a decimal number, followed by an "x", followed by another decimal number and lastly followed by "in" or "cm". I ran this on your text and it works if I correctly understand what you are trying to achieve 
Character Style: Oldstyle
In the OpenType Features section sets the Figure Style to Proportional Oldstyle
Character Style: NOT Oldstyle
In the OpenType Features section sets the Figure Style to Tabular Lining
Paragraph Style: Body
GREP Style #1
Character Style: Oldstyle
\d+ - Any digit, one or more times
GREP Style #2
Character Style: NOT Oldstyle
\(\d+\.\d+x\d+\.\d+(in|cm)\)
\( - Opening bracket
\d+ - Any digit, one or more times
\. - Decimal point
\d+ - Any digit, one or more times
x - An actual letter "x"
\d+ - Any digit, one or more times
\. - Decimal point
\d+ - Any digit, one or more times
(in|cm) - The literal text "in" or "cm"
\) - Closing bracket

If your text contains spaces, just add these to the GREP Style definition...
To find: (3.5×7.5in)
\(\d+\.\d+x\d+\.\d+(in|cm)\)
To find: (3.5 × 7.5 in)
\(\d+\.\d+ x \d+\.\d+ (in|cm)\)