iowarider
The reason that two 500 cc engines can make two different amounts of horsepower is because of the design of the engine.
Horsepower is equal to Torque (in ft/lbs) times Speed (in RPMs) divided by 5252.
In your example for instance the torque is given as 37 foot pounds for both machines. The higher horsepower of the CX500 is due to the higher speed that it can run but things are not always as simple as that in the real world so simply running the engine to a higher speed will not necessarily produce more horse power.
If one looks at the amount of torque produced by the UCE Enfield at different speeds they will see it increase up to about 4000 rpm. As the speed goes higher the torque will slowly start to decrease until the engine reaches 5250 rpm and then the torque will start to fall much faster. That is why the Enfields maximum horsepower happens at a engine speed of 5250.
The torque falls off pretty fast above this speed so even though the engines speed keeps going up the reduced torque isn't enough to keep the horsepower rating up. This results in the horsepower falling off and becoming less and less as the speed continues to increase.
That's why running the engine up to its red-line doesn't improve the acceleration.
I don't have the data for the Honda CX500 but I'm sure it produces its maximum torque at a little higher speed than the Enfield.
More importantly because of its design it can maintain this torque while the engines speed keeps on increasing.
Using the 48 horsepower you mentioned and the horsepower formula along with the 37 ft/lbs of torque you mentioned, that 37 ft/lbs of torque would have to be maintained (or reached) when the engine speed is 6813 rpm to produce the horsepower you mentioned.
Like the Enfield, above this 6800 rpm speed the torque will begin to rapidly fall off so the horsepower will begin to decrease as the engine continues to climb towards its red-line.
I hope this makes the torque and horsepower thing easier to understand.