I am not an expert in MATLAB parallel computation, but I believe that generally the answer is no to both of your questions. While I do not have a completely clear understanding of parfor, which is what MultiStart uses internally for parallel computation, I believe that parfor tries to keep processors busy. So if some of your workers finish before others, I believe that parfor allocates more tasks to the workers that otherwise would be idle, so it is not necessarily true that each worker has the same number of tasks. For your second question, there is overhead in allocating jobs to workers, so you never get N times speedup with N cores.
MATLAB mathematical toolbox documentation