Saute 1 cup onion in margarine in a large saucepan until onion is tender.
Add catsup and next 5 ingredients; bring to a boil. Reduce heat, and simmer 10 minutes.
Sprinkle roast with salt and pepper. Cook in hot oil in a Dutch oven until browned on all sides, turning occasionally.
Drain. Return roast to pan; pour half of catsup mixture over roast. Bring to a boil. Cover, reduce heat, and simmer 3 hours and 45 minutes or until meat is tender, turning occasionally.
Drain and cool slightly. Shred meat with 2 forks; return to pan.
Add remaining catsup mixture. Bring to a boil; cover, reduce heat, and simmer 1 hour, stirring occasionally.
Combine cabbage, carrot, and green onions.
Combine mayonnaise and next 4 ingredients; add to cabbage mixture. Spoon about 1/2 cup meat mixture on bottom half of each bun; top each with 1/4 cup cabbage mixture and a remaining bun half.