ExpandControl adds an observer to the parent RecordControl (supplied by AccessControl in this example). This should handle updating. You could put a Print in ExpandControl set_summary to see if it is getting called.
NeedSummary is a method you put on the Controller that contains the ExpandControl. MakeSummary is a method you put on the control within the ExpandControl. You can use whichever is more convenient. I am not sure how your example can work – it should be defining NeedSummary since it is on the Controller.
We mostly use ExpandControl as part of AccordionControl. I checked a few places and the scroll bars seem to work correctly. However, they were all inside TabsControl so that may be the difference. ExpandControl does .Window.Refresh() when it expands or contracts which should handle this.