How can I set Timeout by View, User or Role?
Given the constraints and in addition to query optimizations and tuning. 

Three stage approach, to limit potential conflicts when reporting from production server –


Use Resource Governor to limit report logins to Max 20% Min 0
Use an Operating Level Agreement (OLA) to require applications reporting from production databases to a 5 second timeout (DBPROP_COMMANDTIMEOUT)
Use a trace to track SQL queries against production database and confirm OLA compliance (filter by login)


Rationale: 


Resource Governor, does not have any contra-indications when limiting occasional report queries against OLTP with constant connect
OLA is not an iron clad guaranty, but if the timeout is used, it limits the potential exposure to the main application (OLTP)
Trace permits follow-up and validation of solution.


References 

Managing SQL Server Workloads with Resource Governor
http://msdn.microsoft.com/en-us/library/bb933866(v=sql.105).aspx 

White paper  “Using the Resource Governor” from the Microsoft Download Center
http://msdn.microsoft.com/en-us/library/ee151608%28v=sql.100%29.aspx