I have had luck with just emitting a simple HTML table to the browser stream after specifying the content type.
What do you mean when you talk about "pages"? Do you mean different ASPX pages?
You could create a method in a utility class that does this if you want to share the functionality. The method could accept a data source or a control. You can render just the single control by creating your own instance of an HtmlTextWriter and calling the control's Render method, passing in the writer. Then emit the result to the Response stream and then end the response. That's how I have done it.