You can start with transforming a vertex-disjoint paths problem to edge-disjoint paths problem. See this answer to other question for details.
Now you can solve Minimum-cost flow problem on this graph to find any number of disjoint paths having minimal sum of path lengths. Do do this, assign flow capacity for each edge equal to 1, then search for a minimum-cost flow between s and t with flow equal to the needed number of paths.
To find the maximum number of paths, apply minimum-cost flow procedure on each step of binary search, starting from some initial number of paths, which may be determined by one of the following procedures:
- If you expect the maximum number of paths to be large, solve Maximum flow problem for this graph.
- If you expect the maximum number of paths to be small, use one-sided binary search (also with minimum-cost flow procedure on each step).