Place the octopus in a large saucepan along with the remaining ingredients for cooking. Add enough water to cover the ingredients. Cover the pot with a lid and let it boil. Lower the heat to medium and cook for about an hour depending on the size of the octopus. The aim is for the octopus to be soft but not melted. If you overcook it, the octopus can come out like a sponge and lose its taste. Cut a piece from the tentacles with a knife. If you cut easily, it is ready.
While cooking the octopus, prepare the marinade by mixing all the ingredients together. Drain the octopus from its juices and cut its tentacles. Divide the head from the middle to have 2 hemispheres.
Put the octopus while it is still hot, in a ziplog bag. Drizzle with half the marinade. Take as much air as you can out of the bag and close it. Place the bag with the octopus in a taper (in case the bag has a hole) and leave it in the fridge to marinate for 24-48 hours. Store the other half of the marinade in a closed taper in the refrigerator.
Remove the octopus from the fridge at least 1 hour before cooking so that it has room temperature. Take the octopus pieces out of the bag and put the marinade in a bowl. Roast the octopus on the grill on high heat, passing it constantly with the marinade until it turns brown and makes a nice crust. Put it on a plate and pour the remaining marinade/dressing over it. Serve hot or at room temperature.