This question already has an answer here:
1) I have a polygon shapefile with 1000 multi-part polygons in it. Each Row of the table is a multipart polygon.
2) I need 1000 shapefiles with 1 multi-part polygon in each.
3) Each output shapefile with 1 multi-part polygon needs to be named with a name from the attribute table (1) unique to each input polygon.
Open to ArcGIS, ArcPy, Model Builder, OGR, QGIS solutions.