As far as I know you can open a new browser window based on an URL. AN URL refers to a location of a HTML file (or php, or whatever). You can generate HTML with a procedure using htp.p calls, but that HTML will only exists on the page where you generated the HTML. You'd still need a method to store your HTML on a place where your (users) browser can resolve it.
Not sure what kind of pages you try to generate, but perhaps you can use a report engine (eg.Jasperreport engine or configure the APEX listener as print server) to produce a report in HTML output format.