I can't find any enforced limits right now. Too many request attributes can really clutter up some views though so I'd only use the ones you will really make use of.
Regarding overhead, Dynatrace should be able to handle it assuming sized properly. But on the monitored app side it depends what the source of the request attribute is. If it's coming from a method parameter that's additional code that Dynatrace uses to gather it which is negligible but if you add a ton of these are try to pull from a method that is called a lot that can cause additional overhead.