#JavaScript (4 Tweets / 343 317 bytes / 243 spare)
Not quite sure about the requirements of the header & Tweets format, so please advise if it needs correcting. Still a bit more can be shaved off I'm certain.
###Tweet 1 - P0 (11 bytes) chrome a.js
Tweet 2 (82 bytes)
a=y=z=j=0,onkeyup=b=>R((k=b.keyCode-40)?z*2*(d=k+3?k+1?1:.5:2)&65|j*d&a||(z*=d):0) Tweet 3 (126 bytes)
R=d=>{d||(!(!y||a&j>>5)||(y>25?a=0:(31^31&(a|=j)>>y||(a=a>>y+5<<y|a&-1>>>-y-5>>5),y=0)),y-=5),y>=0||(y=30,z=12/(new Date%3+1)) Tweet 4 (98 bytes)
j=z<<y;for(o="",i=30;i--;)o+=1<<i&(a|j)?"#":"_",o+=i%5?"":"<br>";O.innerHTML=o},setInterval(R,300) #Run it in JSFiddle: https://jsfiddle.net/CookieJon/7Lenhcge/
(Click on the output pane to provide focus for keyboard events)