For a given subset of features of a project, would you consider the project broken and unusable if you remove it? If yes, it's part of core, else it's not and can probably be extracted into a separate package.
> When do we need to create a core package? Do we even need a core package?
That depends on the project. I'd make a core package if the project is big enough that you can split it into modular parts that can be extracted without breaking basic functionality. You also have to ask yourself if it's worth it. I think it is when you otherwise have people installing a big package to only use a small part of it.
Well, that's regarding packages and its benefit to users. Having a well-defined core (via packages, modules, source files or directories) is helpful in the sense of making the code easier to understand and modify.