Doesn't sound at all like the Captain was ahead of the aircraft, or else he would not have been established at 300'. That is completeley unacceptable, at least in my book (and my companies).
I won't comment on you doing 250kts on downwind, but looks like CRM has failed completeley.
Once a goaround has been initiated, it should be flown. To take the decision back at 900' is dangerous, nothing else. The 1000' gate has been bought with lots of blood and sorrow, and must be respected, no matter how many hours you've got under your belt.
Very poor course of action of the Captain, sounds like a case of "I'll show the boy how it is really done". The sim is the place to play that kind of game, not the real deal loaded with pax.
I am always happy, that my companies procedures state that the call out "go around" must always lead to the manouver when below 1000' AGL if uttered by any competent crew member on the flight deck. No report is required afterwards.
He responded with:" Yeah, but if I take over the controls, than it's not your responsibility anymore"
Wrong, it is the FO's responsibility to do his/her utmost to maintain a safe conduct of the flight - however fighting for the controls is not an option (at least not in this case). Pointing out the breach of regulations was the right thing to do.
If, whiteknight, you've had several occurences like this with the same captain, speak to someone from the flightsafety department. Maybe speak to the head of fleet, if you think further action should be taken. If you have the feeling you can't, because it might fall back on you resulting in disciplinary action against yourself, find a new job. This one might be too dangerous.
All based on the above description of the events, it would be quite interessting to hear the other side...
Nic