X should work fine if the client is behind a NAT/Firewall. The X server on the other hand, needs to be able to accept incoming connections at the required ports, which is probably not the case for DreamHost servers. Dreamhost is a web hosting company, the primary purpose of their servers is to serve web pages, not graphical user interfaces.
Dreamhost probably did not install the required packages on their servers, because running an X server with active clients only works to increase server load (dramatically). Regardless though, the first thing you should do before you start spending time on troubleshooting the problem is to contact Dreamhost support and ask if an X server is available.
I'm guessing you want to log on with X so it's easier to edit documents directly without having to upload the document after each 'save' operation.
One solution is to simply log on to your dreamhost account via SSH from your local PC, if you're fine using text-based editors to work on your files. Many people, however, myself included, work far more efficiently if GUI-based development tools, such as, for instance, Eclipse are available.
One solution that works great for me on my WIndows machine is a small software program written for Windows called WebDrive. As the name implies, it allows you to mount an FTP/SFTP/WebDav/iDisk server, such as your dreamhost sftp account as a logical disk on your local PC. You access the disk just like any other hard drive, but the contents are the actual files and directories on your server. The file system is presented and updated in real time, so WebDrive effectively gives every application on your computer local access to your remote data on the dreamhost server. You don't even have to think twice about the fact that your web server is not actually the local machine that you're working on.
I'm guessing that similar solutions might be available for Linux (if not, this is an open-source project worth pursuing). You can also try and see if you can use existing Linux frameworks, such as NFS for instance, to accomplish this.