Una opción sería usar listas de cadenas y luego vaciarla al arreglo:
Código:
var
SLista: TStringList;
Arreglo: array of String;
Indice: Integer;
begin
SLista := TStringList.Create;
SLista.Delimiter := Separador; // el separador que uses
SLista.DelimitedText := Cadena; // la cadena a partir
SetLength(Arreglo, SLista.Count);
for Indice := 0 to Pred(SLista.Count) do
Arreglo[Indice] := SLista[Indice];
SLista.Free;
// Saludos
pd: Este mètodo no será tan potente como el de PHP pues aquí el separador debe ser un caracter mientras que en PHP me parece que puede ser una cadena.