I'm not quite clear on your method, but there may be room for improvement.
a.) You may have better luck with the table disappearing by using something like renderDataTable or just renderTable; I'm not familiar with gvisTable, so I'm not sure about that.
b.) How are you pulling the file in from Dropbox? If you're reading it in from disk (i.e. this server is registered as a Dropbox client and syncs all the files to disk constantly), then that looks great to me. If you're pulling it in from the web every few seconds, I'd recommend exploring alternatives (such as setting up the server as a Dropbox client, assuming you're hosting your own Shiny Server). One outstanding issue with R/Shiny is that HTTP requests are "blocking", meaning that the entire R process is tied up as long as the request is outstanding. So if the server is slow to respond, or if it takes a couple of seconds to download the data, the process will be unresponsive to other incoming requests (like users changing input and expecting new graphs to be generated) during that request. In your case, if you're doing this every 5 seconds, your users will likely notice that the app isn't too responsive.
On the other hand, if it's a non-interactive dashboard, that may be OK. As the data will just update every 5 seconds and doesn't need to be interactive.
Unfortunately, streaming of new data into Shiny isn't an area we've explored much. There are no technical reasons why it would be any more difficult than any other system, we just don't have any official "best practices" just yet.
Jeff