If you're going to deliver this via the web then Flash is the way to go. You could theoretically do it with Director, but only by embedding a Flash SWF within the Director movie - this may make sense for a product that runs from the user's local file system (CD,DVD, HDD etc.), but it's just adding a layer of complexity (and work for the client's computer) if delivered via the web.
You could use Director if you want the client to download a player application (I.E. built in Director) and then use this as a customised stand-alone player that pulls the video data in from the internet... but you'd still need to do it with an embedded Flash SWF to actually play the videos because Director's built-in support for FLV, F4V and H264 videos doesn't work well at all (or not on Mac anyway - never experimented with it on PC), although using Quicktime movies works OK... if you're sure that your clients will have Quicktime installed on their computers.
Keeping all three videos in sync could also be a tricky nut to crack, particularly if you are streaming the videos from a server rather than transferring them fully to the user's computer before playback. Even if transferring-to and playing-back-from HDD you would need to design and code a mechanism that could continually check that each video was in-sync (using cue points embedded in the videos perhaps) and correct the problem if not - Director is far too clumsy with video to do such a thing but Flash probably could. But then the problem with transferring in-full is that it'll be slow and may give you a needlessly large bandwidth-usage hit on your server, which could be costly.
If it were me I'd be considering a more straight-forward approach, specifically to create the 2-small and 1-large video window in a video editor, render this three times (each time with different main video and small videos), link these to a web page with an embedded Flash SWF that contains a video player, and then to switch the stream as required during playback. You'd need to use Flash Media Server to deliver the stream and manage the switching, but the client-side coding would be pretty simple (nothing more complicated than sending commands to the Flash Media Server). I don't know if this would work with what you have in mind, but IMO it would be the most painless way of guaranteeing the tight synchronisation that you require.