I built a panel similar to what you are talking about for our office. I spent about a day working on it, the possibilities are really (pretty much) endless. Basically, all the computing materials that I process through PHP and do interval AJAX calls the appropriate PHP script, which returns JSON data for presentation.
# 2: For charts, I use / recommend the fleet ( http://code.google.com/p/flot/ ). The documentation is actually not that big, but as soon as you figure out how things work, it's a great library and it generates graphics using the HTML5 Canvas tag.
I have not integrated external libraries into Google Analytics before, but I assume that you can extract data from analytics and format it for the fleet to build the corresponding graphs. It may be difficult, but I am more familiar with the fleet than most other graphic libraries (and it does not suck, like many others), so for me it would be the easiest way to do this.
# 3: For twitter, it's pretty easy to pull data from your search API using JSON-P. Basically, what this does is dynamically add the <script> to your DOM, the GET parameters, which Twitter interprets, and then calls the predefined javascript method (which you pass through the URI) with the hash code processed by json.
# 5: Scrambling and parsing individual sites will be a painstaking process. Each site will have its own “template” (or non-template) for publishing its daily menu or specials. I would build a “menu” script that knew how to call several functions, and write a function / class to clean each restaurant site that you are interested in when displaying the menu in PHP (or in any other language, comfortably). It can respond with json, which (imo) is the easiest way to manipulate / process data in Javascript.
# 6: Real-time statistics are almost the same as # 5. I would build a couple of classes that knew how to extract statistics from any data sources that interest me and present the data in json for javascript via ajax call.
# 1: Writing javascript code to load timer data is very simple, look at the setInterval , clearInterval , setTimeout and clearTimeout methods. All of them accept the name of the function (or closure) and the wait time before calling this function (in ms). You can easily call the main timer function every 60 seconds, which will basically be the "scheduler" or "cron" function, which will simply look for the material that was supposed to be launched "right now" and perform these functions from the scheduler.
Hope this gives you some ideas on where to go and how to get there.