My bad, OTYPE = 'P' is of course not stored in HRP1000. You could see how many distinct entries (PERNR) there are in PA0000 or PA0001.
Well you do have quite many org. units. How long does it take in milliseconds/seconds for you to execute RH_STRUC_GET for one employee? You can test the function module in SE37. If it takes anything longer than 0.1 seconds, you should be having also other performance problems. Have you discussed the problem with your basis admin?
What is your exact SAP release version including SP level? There might be some performance improving SAP notes that you will have to implement.