I'll be covering this amongst other things in my upcoming presentation at SAS Global Forum. There are many ways to do this. One I have used recently is to generate HTML from a stored process by writing it to _webout. You can then generate a series of HTML lists which use javascript to achieve what you want.
Another way would be that when you select a country (for example) the stored process is called again, passing the country in to it, you then generate the next list box with states, and so on. We built a very flexible dataviewer using this technqiue.