On Solaris, iostat tells me that a device is 92% busy, but how do I find out what programs are making the requests?
If you mean Solaris 10 try
iotop, a DTrace script by Brendan Gregg. It lists the device (fifth column).
You can find some other particularly useful DTrace scripts at http://prefetch.net/articles/solaris.dtracetopten.html.