The traditional problem of end-hosts efficiently and fairly utilizing end-to-end paths becomes significantly harder when the end-hosts are multihomed. Such is the case, for instance, when an end-host has simultaneous connectivity through several service providers, or when a mobile device is simultaneously connected via both a wireless LAN and a cellular network. A multihoming-aware transport protocol, such as MPTCP or SCTP, that sends data over the multiple resulting end-to-end paths must be fair to other flows in the network while being able to maximize its own throughput. In this paper, we present Dynamic Window Coupling (DWC), a multipath congestion control mechanism that seeks to achieve both these goals. DWC uses loss and delay signals to detect shared bottlenecks, explicitly grouping and sharing congestion control across subflows on paths that have a common bottleneck, while separating congestion control for subflows on paths with distinct bottlenecks. DWC detects shifting bottlenecks in the network and responds by dynamically regrouping subflows. Simulations demonstrate that DWC detects shared bottlenecks under most network topologies and conditions that we considered, regroups subflows correctly as bottlenecks shift, aggregates throughput across distinct bottlenecks, and is fair to other TCP flows at all bottlenecks.